字符串到对象的转换?
问题描述:
我有一个字符串变量是一个对象的字符串表示形式。就像这样:字符串到对象的转换?
{
"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);
答
发布后立即发现有JSON.parse();
函数。我不删除这个问题的唯一原因是,以后可能会节省一些时间。
您所要做的只是将字符串变量作为参数传递,并输出一个对象。
如果有人看到这个解决方案的任何问题,或知道更好的解决方案,请做出答案!
我上面贴一个完整的工作例如,如果你仍然有兴趣。 –