如何在我的JSON对象中使用特定字段?

时间:2013-12-28 06:36:58

标签: jquery ajax json

我可以从服务器检索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 

谢谢你,抱歉这个可怕的问题。我显然在权威文档中遗漏了一些内容。

2 个答案:

答案 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”对象中的任何内容。