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