2014-02-18 102 views
0

我需要帮助将JSON字符串转换为JSON对象。 这里是我的变量:将动态字符串转换为JSON对象

var myString= "{ title: 'mySchema'," + "root: {id:'" + var1 + "'," + "title:'" + var2 + "'," + "subtitle:'" + var3 + "',"; 
childrenVar = myString + "{ id: '" + var1 + "'," + "title: '" + var2 + "'," + "subtitle: '" + var3 + "'," + "type: '" + var4 + "'"; 

myString= getChildNodes(tasksEntries, head, liststring); 
myString= myString + "},";} 
myString= myString+ "]}}"; } 
myString= childrenVar; 
myString= childrenVar; 
JSON.stringify(myString); 
$.parseJSON(myString); 

这是myString输出这个时候我调试:

{title: 'mySchema', 
root: { 
    id:'1', 
    title:'oOB', 
    subtitle:'Hang Chaw', 
    children: [ 
     { 
     id: '2', 
     title: 'OaK', 
     subtitle: 'Ke Man', 
     type: 'VA' 
     }, 
     { 
     id: '3', 
     title: 'OOB', 
     subtitle: 'Hung Aslew', 
     type: 'VA' 
     }, 
    ] 
    } 
}; 
+0

这些行的含义是什么..... myString = myString +“]}}”; } myString = childrenVar;你重写myString的值.....只需创建适当的字符串,并{{obj = JSON.parse(myString)} – Piyuesh

+0

@Piyuesh'myString = myString +“]}};'是一个连接语句。覆盖原始值 – Bic

+0

我真的不清楚你用这段代码试图达到什么目的你是从一个对象创建JSON吗?从JSON创建一个对象?无论哪种情况,都没有必要做任何字符串处理。通过使用正确的术语来澄清你的问题。我假设你的意思是一个包含JSON的字符串,并且通过“JSON对象”一个JavaScript对象来代替它。 –

回答

0

除去接近阵列之前的最后一个逗号(])。

0

您还需要围绕对象键引号。正确的JSON字符串看起来像下面的字符串。 jQuery.parseJSON

下面是一个示例Fiddle,其中字符串转换为对象,然后记录到控制台。

var myString = '{"title": "mySchema","root": {"id":"1","title":"oOB","subtitle":"Hang Chaw","children": [{ "id": "2","title": "OaK","subtitle": "Ke Man","type": "VA"},{ "id": "3","title": "OOB","subtitle": "Hung Aslew","type": "VA"}]}}'; 

这里是相同的Fiddle,使用JSON.parse。最新版本的JavaScript本身支持JSON。如果你只使用jQuery来解析JSON字符串,那么你应该使用JSON.parse,而不是包含jQuery库。

+0

使用JSON.parse而不是jQuery.parseJSON –

+0

@FUserThrowError OP例子是使用$ .parseJSON,这就是为什么我的解决方案也一样.JSON.parse和$ .parseJSON具有相同的影响。 – Bic

相关问题