将string转换为JSON对象

你怎么让JS认为一个string是JSON?

我有一个函数,只有JSON对象传递给它。 如果我传递一个string,与JSON格式相同,它不起作用。 所以我想让这个函数认为传递给它的string是一个JSON。 该string确实是JSON格式。

我也尝试了以下。 我通过Ajaxinputstring,“handle as”参数为“JSON”,然后当我将结果传递给它的函数。

所以我推断这个问题不在string中。 如何将此string转换为JSON? 如果我通过ajax请求获得相同的string,然后将其传递给函数工作,而直接传递它不起作用。

string如下:

{ "data": [ { "id": "id1", "fields": [ { "id": "name1", "label": "joker", "unit": "year" }, {"id": "name2", "label": "Quantity"}, ], "rows": [ data here.... and closing braces.. 
 var obj = JSON.parse(string); 

其中string是你的JSONstring。

你可以使用JSON.parse()

请参阅MDN上的文档

例:

 var myObj = JSON.parse('{"p": 5}'); console.log(myObj); 
 var obj = jQuery.parseJSON('{"name":"John"}'); alert( obj.name === "John" ); 

链接:-

http://api.jquery.com/jQuery.parseJSON/

我的问题和你的类似的string一样

 {id:1,field1:"someField"},{id:2,field1:"someOtherField"} 

问题她是string的结构jsonparsing器没有认识到它需要在这种情况下创build2个对象。 所以我所做的是有点傻,我只是重新构造我的string,并添加了这个parsing器识别的[]

 var myString = {id:1,field1:"someField"},{id:2,field1:"someOtherField"} myString = '[' + myString +']' var json = $.parseJSON(myString) 

希望它有帮助,

如果有人有一个更优雅的方法,请分享。

 var Data=[{"id": "name2", "label": "Quantity"}] 

将stringvariables传递给Jsonparsing:

 Objdata= Json.parse(Data); 

JSON.parse()函数会做。

要么

使用jquery,

 var obj = jQuery.parseJSON( '{ "name": "Vinod" }' ); alert( obj.name === "Vinod" ); 

只需使用eval函数。

 var myJson = eval(theJsibStr);