使用JSON.parse()
时出错$jsonStr = JSON.parse(["a:5:{i:0;s:4:"3900";i:1;s:4:"3892";i:2;s:4:"3896";i:3;s:4:"3894";i:4;s:4:"3902";}"])
我在下面使用过,但我需要做的就是把内容拿出来,循环遍历它。我需要得到3900,3892,3896,3894,3902,这些是ID,我需要循环遍历它们并附加到URL,我可以附加到URL,我只需要遍历字符串并获取这些ID。我不必使用JSON.parse,我只需要使用javascript。
var jsonStr=$jsonStr;
var json=JSON.stringify(jsonStr);
json=JSON.parse(json)
答案 0 :(得分:3)
这不是有效的JSON。尝试将其运行过JSONLint之类的内容,以验证您是否拥有有效的JSON。请记住:JSON只是一个字符串,看起来就像Javascript中的标准对象,但所有键必须引用双引号。
答案 1 :(得分:0)
正如其他人所说,你的字符串无效Json。
如果您仍想从中提取这些字符串,可以使用:
>> A = rand(1,8)
A =
0.4387 0.3816 0.7655 0.7952 0.1869 0.4898 0.4456 0.6463
>> N = 4;
>> B = ceil(sum(bsxfun(@le, A(:), A(:).'))*N/numel(A))
B =
2 1 4 4 1 3 2 3
输出:
var input = 'a:5:{i:0;s:4:"3900";i:1;s:4:"3892";i:2;s:4:"3896";i:3;s:4:"3894";i:4;s:4:"3902";}';
var matches = input.match(/:"[^"]*/g).join('').split(':"').slice(1);
// loop through the result:
matches.forEach(function (match) {
console.log(match);
});