我使用javascript从JSON字符串中获取值
$(document).ready(function () {
var obj = '[{
"StartNumber":10000000000000000001,
"EndNumber":10000000000000100000},
"StartNumber":30000000000000000001,
"EndNumber":30000000000000100000}]';
var val = eval('(' + obj + ')');
alert("StartNumber: " + val.StartNumber[0]);
});
我无法从字符串中获取值?
答案 0 :(得分:2)
你可以试试这个:
首先使用JSON.parse()
$(document).ready(function () {
var str = '[{"StartNumber":10000000000000000001,"EndNumber":10000000000000100000},{"StartNumber":30000000000000000001,"EndNumber":30000000000000100000}]';
var obj = JSON.parse(str);
alert("First StartNumber: " + obj[0].StartNumber);
});
注意强>:
由于提及here的以下原因,应避免使用eval
。
答案 1 :(得分:1)
这应该有效:
$(document).ready(function () {
var obj = '[{"StartNumber":10000000000000000001,"EndNumber":10000000000000100000},{"StartNumber":30000000000000000001,"EndNumber":30000000000000100000}]';
obj = JSON.parse(obj);
alert("StartNumber: " + obj[0]['StartNumber']);
});
答案 2 :(得分:0)
其 val [0] .StartNumber 不是 val.StartNumber [0]
答案 3 :(得分:0)
答案 4 :(得分:0)
我已将一些变量重命名为更有意义,并使用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);
}
答案 5 :(得分:0)
您应该使用JSON.parse
。如果您使用旧浏览器,则应使用polyfill(http://bestiejs.github.io/json3/)。