使用javascript从JSON获取值

时间:2017-09-27 15:51:59

标签: javascript json

我需要使用javaScript从JSONString获取值。我做了以下事情:

jsonData = JSON.stringify(data);
var jsonVar = "jVar";


for (var l = 0; l < jsonData.jsonVar.length; l++) {
                    var item = jsonData.itemI+"-"+itemJ+"-"+itemK.split(' ').join('')[i];
                    alert(cuecard);
                }

这是JSONData:

{"jVar":["123","234"]}

但我得到以下例外:

Uncaught TypeError: Cannot read property 'length' of undefined
at Object.success (test.jsp:62)
at i (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at A (jquery.min.js:4)
at XMLHttpRequest.<anonymous> (jquery.min.js:4)

我在here看到了这个例子,我不知道我正在做的错误。任何人都可以建议。

4 个答案:

答案 0 :(得分:2)

你有错误的方法 - JSON.stringify将javascript对象转换为字符串。并且JSON.parse将JSON字符串解析为javascript对象。

此外,完成此操作后,如果要使用字符串读取属性,请使用方括号:

var jsonData = JSON.parse(data);
var jsonVar = "jVar";

for (var l = 0; l < jsonData[jsonVar].length; l++) {
  var arrayItem = jsonData[jsonVar][l];
 ...
}

(旁边l对于循环控制变量来说是一个糟糕的选择 - 看起来太像1

答案 1 :(得分:0)

你必须像这样访问这个属性。

for (var l = 0; l < jsonData[jVar].length; l++) {

}

答案 2 :(得分:0)

确保首先拥有有效的JSON对象。我不认为你拥有的东西是有效的。

JSON.parse(yourValidJsonObject);

上面的内容应该为您提供一个可以使用的简单Javascript对象。

然而,JSON.stringify(yourPlainJavascriptObject)会将普通的js对象转换为JSON对象。

答案 3 :(得分:-1)

只需运行JSON.parse(jsonString)即可从中获取对象