如何从json字符串中检索值

时间:2014-04-02 10:11:48

标签: javascript

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

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

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

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

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

6 个答案:

答案 0 :(得分:2)

你可以试试这个:

首先使用JSON.parse()

解析json格式的字符串
$(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']);
});
  • 不要使用eval,因为它的价值无用。
  • 告诉javascript解析你的json
  • 从索引编号开始访问数组,然后输入密钥

JS Fiddle

答案 2 :(得分:0)

val [0] .StartNumber 不是 val.StartNumber [0]

答案 3 :(得分:0)

您可以使用

val[0].StartNumber

val[0]["StartNumber"]

Working Demo

答案 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/)。