在javascript中解析Json的密钥包含反斜杠

时间:2013-11-28 11:10:03

标签: javascript jquery json

我试图在jQuery中解析以下freebase API。

  

https://www.googleapis.com/freebase/v1/search?query=us%20president&filter=(all%20type:/people/person)&output=(/common/topic/image)

但是当我尝试访问 /common/topic/image “mId”图片时,我遇到了问题。

任何正文都可以告诉我访问包含"/common/topic/image"这些类型密钥的对象或数组的正确方法。

谢谢!

2 个答案:

答案 0 :(得分:1)

$.getJSON("https://www.googleapis.com/freebase/v1/search?query=us%20president&filter=(all%20type:/people/person)&output=(/common/topic/image)", function (data) {
    var r = data.result; 
    // iterate each result   
    $.each(r, function (i, j) {
        var arr = j.output['/common/topic/image'];
        //iterate each arr['/common/topic/image']
        $.each(arr['/common/topic/image'], function (k, l) {
            console.log(l);
        });
    });
});

请参阅JSFiddle

根据您的评论,

如果您检查json,则最后 result 没有名为 /common/topic/image 的数组。

所以当它试图迭代时,它失败了[无法获得长度]

所以只需像if (arr['/common/topic/image']) {...}一样添加一个条件。现在如果它有空元素,它将被跳过。

检查这个小提琴http://jsfiddle.net/praveen_jegan/6MCKA/2/

答案 1 :(得分:0)

如果对象键包含点或斜线,则可以通过以下方式访问它:

var o = {
 'some.key': 123,
 'another/key': 321
};

console.log(o['some.key'], o['another/key']);