使用 javascript 从 JSON 获取值
2017-09-27
81
我需要使用 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)
我在 这里 看到了这个例子,但我不知道我犯了什么错误。有人可以提出建议吗?
3个回答
您搞错了 -
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
)
Jamiec
2017-09-27
首先确保您有一个有效的 JSON 对象。我认为您拥有的从一开始就不是有效的。
JSON.parse(yourValidJsonObject);
以上应该为您提供一个可以使用的纯 Javascript 对象。
而
JSON.stringify(yourPlainJavascriptObject)
会将纯 js 对象转换为 JSON 对象。
pro
2017-09-27
您必须像这样访问该属性。
for (var l = 0; l < jsonData[jVar].length; l++) {
}
Himan
2017-09-27