我正在使用当前的json结构:
jsonp = {"game":[
{"id":"1","gameImage":"qqq.jpg"}
],
"game":[
{"id":"2","gameImage":"hhh.jpg"}
]
}
我试图恢复所有 gameImage 值。我尝试了以下但它只是赢了工作。有什么想法吗?
<html>
<head></head>
<body>
<script type="text/javascript" language="javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript" language="javascript" src="gameData.json"></script>
<script>
$(document).ready(function() {
var obj = $.parseJSON(jsonp);
$.each(obj, function() {
alert(this['gameImage']);
});
});
</script>
</body>
</html>
答案 0 :(得分:1)
假设您显示的第一个代码位于文件中(错误地)名为"gameData.json"
,那么您尝试解析的不是JSON(或JSONP),而是纯JavaScript。
所以不要解析它。
更改
var obj = $.parseJSON(jsonp);
到
var obj = jsonp;
注意:
jsonp
命名为包含普通JavaScript对象的变量。如果您更喜欢加载JSON文件而不是执行JavaScript文件,那么
"jsonp =
部分以使其成为真正的JSON文件script
元素(因为它不再是JavaScript)以下是JavaScript的结果:
$(document).ready(function() {
$.getJSON("gameData.json", function(obj){
$.each(obj, function() {
alert(this['gameImage']);
});
});
});
或者,如果你能负担得起不支持IE8:
$(document).ready(function() {
$.getJSON("gameData.json", function(arr){
arr.forEach(function(item){
console.log(item.gameImage); // yes, prefer the console over alert
});
});
});