另一位用户thread建议在此处发布另一个问题,解释如何访问JSON对象。我正在使用的代码是:
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>
$(function () {
$.getJSON(
"https://api.guildwars2.com/v1/wvw/matches.json",
function (data) {
$("#reply").html(JSON.stringify(data));
// or work with the data here, already in object format
});
});
</script>
我要对the JSON code进行的操作是搜索指定的world_id
并返回match_id
。我是JavaScript的新手,所以我不太清楚如何做,以及如何访问上面代码给我的字符串化数据。
我想方法的方法是创建一个数组并将每个对象存储在其中,然后循环并检查匹配的ID,如
if(obj[i].red_world_id == 'xxxx' || obj[i].blue_world_id == 'xxxx' || obj[i].green_world_id == 'xxxx') {
return obj[i].wvw_match_id;
}
我唯一的问题是我不确定如何将数组设置为JSON数据。
答案 0 :(得分:2)
。使用此代码 -
$(function() {
$.getJSON("https://api.guildwars2.com/v1/wvw/matches.json", function(
data) {
$("#reply").html(JSON.stringify(data));
// or work with the data here, already in object format
var result = [];//for if it has many matches
for ( var i=0;i<data.wvw_matches.length;i++ ) {
var obj = data.wvw_matches[i];
if (obj.red_world_id == 'xxxx' || obj.blue_world_id == 'xxxx'
|| obj.green_world_id == 'xxxx') {
result.push(obj.wvw_match_id);
}
}
});
});
答案 1 :(得分:1)
不需要stringify,您可以直接使用JSON对象:
function(data) {
var filteredArray=$.grep(data.wvw_matches, function (item) {
return (item.red_world_id == 'xxxx' || item.blue_world_id == 'xxxx' || item.green_world_id == 'xxxx');
});
}
See this page有关jQuery.grep的信息。