字符串到对象的转换?

字符串到对象的转换?

问题描述:

我有一个字符串变量是一个对象的字符串表示形式。就像这样:字符串到对象的转换?

{ 
    "column": "'asdf'", 
    "sort": "true", 
    "search": "{\"asdf\":\"searchval\"}" 
} 

我想上面的字符串转换成一个对象,它看起来像这样:我做搜索和替换引号和反斜线正则表达式规划

{ 
    column: 'asdf', 
    sort: 'true', 
    search: { 
     asdf: 'searchval' 
    } 
} 

,然后使用eval(),但这似乎不安全和效率低下。有没有更好的替代方法?

我正在计划将字符串的对象值分配给对象变量。

你试过JSON.parse();然而?

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

var myOriginalData = JSON.stringify({"column": "'asdf'","sort": "true","search": "{\"asdf\":\"searchval\"}"}); 

myNewData = JSON.parse(myOriginalData, function (key, value) { 
    var type; 
    if (value && typeof value === 'object') { 
     type = value.type; 
     if (typeof type === 'string' && typeof window[type] === 'function') { 
      return new (window[type])(value); 
     } 
    } 
    return value; 
}); 

console.log('myNewData -----------------------------------------------------------'); 
console.log(myNewData); 

工作实例:http://plnkr.co/edit/2jLGIxx3AVEceVQsOpxL?p=preview

发布后立即发现有JSON.parse();函数。我不删除这个问题的唯一原因是,以后可能会节省一些时间。

您所要做的只是将字符串变量作为参数传递,并输出一个对象。

如果有人看到这个解决方案的任何问题,或知道更好的解决方案,请做出答案!

+0

我上面贴一个完整的工作例如,如果你仍然有兴趣。 –