我需要使用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看到了这个例子,我不知道我正在做的错误。任何人都可以建议。
答案 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)即可从中获取对象