Javascript 如何从json字符串中检索值

Javascript 如何从json字符串中检索值,javascript,Javascript,我使用javascript从JSON字符串中获取值 $(document).ready(function () { var obj = '[{ "StartNumber":10000000000000000001, "EndNumber":10000000000000100000}, "StartNumber":30000000000000000001, "EndNumber":30000000000000100000}]'

我使用javascript从JSON字符串中获取值

$(document).ready(function () {
    var obj = '[{
        "StartNumber":10000000000000000001,
        "EndNumber":10000000000000100000},
        "StartNumber":30000000000000000001,
        "EndNumber":30000000000000100000}]';

    var val = eval('(' + obj + ')');

    alert("StartNumber: " + val.StartNumber[0]);
});

我无法从字符串中获取值?

它的val[0]。StartNumber不是val.StartNumber[0]

您可以尝试以下操作:

首先使用

注意: 由于以下原因,应避免使用
eval

这应该有效:

$(document).ready(function () {
    var obj = '[{"StartNumber":10000000000000000001,"EndNumber":10000000000000100000},{"StartNumber":30000000000000000001,"EndNumber":30000000000000100000}]';
    obj = JSON.parse(obj);
    alert("StartNumber: " + obj[0]['StartNumber']);
});
  • 不要使用eval,它的价值是无用的
  • 告诉javascript解析json
  • 从索引号开始访问数组,然后访问键
您可以使用

val[0].StartNumber


为了更加合理,我重命名了几个变量,并使用了
JSON.parse
而不是
eval

var json = '[{"StartNumber":10000000000000000001,"EndNumber":10000000000000100000},{"StartNumber":30000000000000000001,"EndNumber":30000000000000100000}]';
var arr = JSON.parse(json);
基本上,解析JSON会生成一个对象数组。要获取第一个元素,请执行以下操作:

console.log("StartNumber: " + arr[0].StartNumber);
如果要在阵列上循环,请执行以下操作:

for (var i = 0, l = arr.length; i < l; i++) {
  console.log("StartNumber: " + arr[i].StartNumber);
}
for(变量i=0,l=arr.length;i
您应该使用
JSON.parse
。如果您使用的是旧浏览器,您应该使用polyfill()。

我使用过这些,但它在alert First StartNumber:100000000000000000中给出的值不正确,可能是数字长度问题,如何获得准确的结果。@Jain:Yes。当位数超过16时,数字长度就是问题所在。但是,如果字符串的格式为“[{”StartNumber:“100000000000000001”,..”,则它工作正常。
console.log("StartNumber: " + arr[0].StartNumber);
for (var i = 0, l = arr.length; i < l; i++) {
  console.log("StartNumber: " + arr[i].StartNumber);
}