字符串

时间:2015-12-04 18:43:03

标签: javascript json

使用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)

2 个答案:

答案 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);
});