我可以从服务器检索JSON对象。
访问特定字段的语法是什么,例如“name”,“id”?
在下面的代码中,'result'是对象,所以我猜我是否想访问“name”字段,我需要使用类似“result.name”的东西,但这对我不起作用。< / p>
$(document).ready(function(){
$("button").click(function(){
$.getJSON("https://prod.api.pvp.net/api/lol/na/v1.1/summoner/by-name/RiotSchmick?api_key=c65e376c-2824-46e5-a055-125c79965f0a",function(result){
$.each(result, function(i, field){
$("div").append(i + ": " + field + " <br>");
});
});
});
});
“$。each”循环播放并输出正常,您能告诉我如何更好地控制此过程,以便输出特定字段吗?
如果你有兴趣,这是我的“每个”的输出:
id: 585897
name: RiotSchmick
profileIconId: 583
summonerLevel: 30
revisionDate: 1387224878000
revisionDateStr: 12/16/2013 08:14 PM UTC
谢谢你,抱歉这个可怕的问题。我显然在权威文档中遗漏了一些内容。
答案 0 :(得分:1)
使用感兴趣的属性数组,然后迭代它以显示相应的值
$.getJSON("https://prod.api.pvp.net/api/lol/na/v1.1/summoner/by-name/RiotSchmick?api_key=c65e376c-2824-46e5-a055-125c79965f0a", function (result) {
$.each(['id', 'name'], function (i, field) {
$("div").append(field + ": " + result[field] + " <br>");
});
});
演示:Fiddle
答案 1 :(得分:0)
也许这个:
var obj = {}, items = {};
$.each(result, function(i, field){
obj.i = field;
items[parseInt(obj.id)] = obj;
});
项目的输出(应该允许您通过唯一标识符选择每个对象,例如其ID):
var items = {
585897: {
id: '585897',
name: 'RiotSchmick',
profileIconId: '583',
summonerLevel: '30',
revisionDate: '1387224878000',
revisionDateStr: '12/16/2013 08:14 PM UTC'
},
//another object,
//another object
}
然后,您可以按如下方式选择一个对象
console.log(items[585897]); //{id: 585897... etc.
我现在能想到的唯一一个重要警告是,如果你有两个具有相同ID属性的对象,那么后一个可以覆盖之前的对象。这里代码背后的原理是每个ID属性都是唯一的。这样,您就可以避免覆盖“items”对象中的任何内容。