如何将Multiline字符串转换为对象

时间:2016-05-24 13:01:56

标签: javascript string parsing object

大家好,我有一个让我困惑的问题,对不起,如果我问你一个明显的问题,但请你帮帮我..

{"value":1,"text":"first"},
{"value":2,"text":"second"},
{"value":3,"text":"third"},
{"value":4,"text":"fourth"} 
...

我有一个看起来像这样的字符串,我需要解析这个字符串,当只有一行时我对JSON.parse没有问题,但有没有办法解析整个字符串?

编辑:

这是我的客户方:

$.post(path,{"loadComps":"*"},function(data){
console.log(data);
$('.dev_comp').editable({
source: data
}); 
});

这是我从console.log获得的内容

[ 
{"value":1,"text":"somename"}, 
{"value":2,"text":"somename"}, 
{"value":3,"text":"somename"}, 
....
{"value":1400,"text":"somename"}, 
{"value":1401,"text":"somename"}, 
]

错误日志:

  

jquery-1.11.3.min.js:5 GET mywebpage.com/eng/[%20%7B%22value%22:1,%22text%22:%22%20%E1%83%A1%E1 ...%E1%83%90%E1%83%AE%E1%83%90%E1%83%AB%E1%83%94%22%7D%20%20]?_ = 1464096474491 414(Request-URI Too)大)

1 个答案:

答案 0 :(得分:0)

字符串是多行的,没有任何问题。问题是JSON字符串中的对象没有放在数组中。这样:

var myJsonString = "[{"value":1,"text":"first"},
{"value":1,"text":"first"},
{"value":3,"text":"third"},
{"value":4,"text":"fourth"} ]"

与此相同:

var myJsonString = "[{"value":1,"text":"first"}, {"value":1,"text":"first"}{"value":3,"text":"third"},{"value":4,"text":"fourth"} ];

您缺少的是JSON字符串中的对象需要放在数组[]中。如果您无法更改JSON字符串的来源以在其周围添加[],请在解析之前在字符串之前添加[之前添加]

var myJsonString = "[" + myJsonString + "]";
var arr = JSON.parse(myJsonString);