2014-04-04 61 views
0

我想要访问JSON响应中的图像,但是我需要访问的字段是唯一或相当随机的id值。我们正在从服务器获取这些数据,所以我们无法对ID进行硬编码。无法访问JSON中的字段

的JSON如下:

{ "error" : { "occured" : "false" }, 
"errors" : [ ], 
"executiontime" : 2500, 
"metadata" : { }, 
"value" : [ { "activity_duration" : "1 hour, ½ day & full day packages", 
    "adult_rate_high_period_high_price" : 275, 
    "adult_rate_high_period_low_price" : 49, 
    "adult_rate_low_period_high_price" : "", 
    "adult_rate_low_period_low_price" : "", 
    "amenities" : [ ], 
    "assets" : { "logo" : { "436209" : { "asset_type" : "image", 
       "caption" : "", 
       "credit" : "", 
       "description" : "", 
       "exists" : "true", 
       "height" : 82, 
       "label" : "Copy of Monarch logo", 
       "latitude" : 0, 
       "longitude" : 0, 
       "market" : "$", 
       "o_id" : 3221685, 
       "type_o_id" : 2543991, 
       "unique_id" : 436209, 
       "url" : "http://c0481729.cdn2.cloudfiles.rackspacecloud.com/p-DD951E3E-C7AF-F22C-77E98D299833B38F-2544001.jpg", 
       "width" : 220 
       } }, 

我们正试图显示每个设施的企业标识。为此,我需要访问上述JSON中的url字段。如何访问assest下的url字段。

+2

你能提供更多的细节吗? –

回答

1

的问题是获得徽标436209的ID。

var theid; 
var l = obj.value[0].assets.logo 
for (var p in l) { 
    if (l[p].hasOwnProperty('unique_id')) { 
    theid = l[p].unique_id; 
    break; 
    } 
} 

这是无稽之谈。 idee将使用in -operator遍历徽标对象的属性并获取具有unique_id的属性。

+0

这有效!非常感谢你。你是一个传奇。 – batsta13

+0

我还有一个问题。我编辑了上面的问题。 – batsta13

+0

在你的代码中你有'var l = item.assets.logo'。有了这个,你可以使用:var url = item.assets.logo [theid] .url'来访问url。 – phylax

0

校正:

obj.value[0].assets.logo["436209"].url = 'foo'; 
// or 
var foo = obj.value[0].assets.logo["436209"].url; 

这假设你的对象被很好地形成,并与obj.value的多个部分继续[0]。

特别是,如果你的目标已经完成,也许是这样的:

var obj = { 
    "error": { "occured": "false" }, 
    "errors": [], 
    "executiontime": 2500, 
    "metadata": {}, 
    "value": [{ 
     "activity_duration": "1 hour, ½ day & full day packages", 
     "adult_rate_high_period_high_price": 275, 
     "adult_rate_high_period_low_price": 49, 
     "adult_rate_low_period_high_price": "", 
     "adult_rate_low_period_low_price": "", 
     "amenities": [], 
     "assets": { 
      "logo": { 
       "436209": { 
        "asset_type": "image", 
        "caption": "", 
        "credit": "", 
        "description": "", 
        "exists": "true", 
        "height": 82, 
        "label": "Copy of Monarch logo", 
        "latitude": 0, 
        "longitude": 0, 
        "market": "$", 
        "o_id": 3221685, 
        "type_o_id": 2543991, 
        "unique_id": 436209, 
        "url": "http://c0481729.cdn2.cloudfiles.rackspacecloud.com/p-DD951E3E-C7AF-F22C-77E98D299833B38F-2544001.jpg", 
        "width": 220 
       } 
      } 
     } 
    }] 
}; 
+0

对不起,我们没有正确解释问题。我们实际上是从服务器获取这些数据,并且不能硬编码,因为我们不知道它们是什么。有没有办法通过JSON迭代并获取id,不管它是什么。 – batsta13

+0

可以将id字段作为索引来处理,例如var foo = obj.value [0] .assets.logo [0] .url; – batsta13