简体   繁体   English

将eval()转换为JSON.parse()时出错

[英]Error when converting eval() to JSON.parse()

I have a snippet code with eval() as shown below: 我有一个eval()的代码段,如下所示:

 var data = "{listUpdated:[],listConflictOrMerge:[]}"; //returned from Ajax var results = eval("(" + data + ")"); console.log(results) 

As you can see, the data is my input value returned from ajax request. 如您所见, 数据是我从ajax请求返回的输入值。 When using eval(), it can be parsed to 2 array objects. 使用eval()时,可以将其解析为2个数组对象。

And now I don't want to use eval() anymore, so I try using JSON.parse(). 现在我不想再使用eval()了,所以我尝试使用JSON.parse()。 However, there is an error. 但是,有一个错误。

 var data = "{listUpdated:[],listConflictOrMerge:[]}"; //returned from Ajax var results = JSON.parse(data); console.log(results) 

my purpose is that I don't want to use eval() to parse data anymore. 我的目的是我不想再使用eval()来解析数据。

  • So, is there any ways can do that?. 那么,有什么方法可以做到这一点?

  • I try using JSON, but I got unlucky. 我尝试使用JSON,但我很不幸。 Am I wrong somewhere? 我在某个地方错了吗?

The data you're trying to parse isn't valid JSON, so JSON.parse can't parse it. 您尝试解析的数据不是有效的JSON,因此JSON.parse无法对其进行解析。

Keys in JSON objects must be quoted, just like any other string. 就像其他字符串一样,JSON对象中的键也必须加引号。 The form you're using is valid in Javascript, but invalid in JSON. 您使用的表单在Javascript中有效,但在JSON中无效。

 var data = '{"listUpdated":[],"listConflictOrMerge":[]}'; var results =JSON.parse(data); console.log(results) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM