Разбор Json в javascript для ключей содержит обратную косую черту

0

Я пытаюсь проанализировать следующий API-интерфейс freebase в jQuery.

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 ответа

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
    @ARV Я рад, что смог помочь, мой друг.
Показать ещё 5 комментариев
0

Если ключ объекта содержит точки или косые черты, вы можете получить к нему доступ таким образом:

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню