我有两个变量data和DataConvert,我想像这样转换数据 DataConvert
let data="{'one':{'id':'2'},'one':{'id':'2'}}"
let DataConvert={'one':{'id':'2'},'one':{'id':'2'}}
console.info(data)
console.info(DataConvert)
答案 0 :(得分:2)
唯一可以执行此操作的内置函数是eval()
。
let data="{'one':{'id':'2'},'two':{'id':'2'}}";
let DataConvert;
eval(`DataConvert = ${data}`);
console.info(data)
console.info(DataConvert)
在jsfiddle中,某些字符串中包含\r\n
,这不是有效的JavaScript。如果您希望将它们原样保留在结果中,则需要在调用eval()
之前对其进行转义:
data = data.replace(/\r/g, '\\r').replace(/\n/g, '\\n');
但是如果您不控制字符串的来源,这将很危险,因为它将在data
中执行任意表达式。
如果将引号更改为双引号,则可以使用更安全的JSON.parse()
。
let data='{"one":{"id":"2"},"two":{"id":"2"}}';
let DataConvert = JSON.parse(data);
console.info(data)
console.info(DataConvert)
请注意,对象键必须唯一,不能有两个名为"one"
的属性。我将第二个更改为"two"
以使其有效。