Парсинг темы HTTP Freebase API - JSON & Javascript - PullRequest
2 голосов
/ 01 августа 2010

Я пытаюсь проанализировать вывод JSON:

http://www.freebase.com/experimental/topic/standard?id=/en/colonel_sanders

Я бы хотел поместить базовые данные в массив, используя Javascript. В объекте «properties» я хотел бы получить любой элемент «text» на один уровень ниже «properties» как метку и захватить «text» под объектом «values», чтобы соответствовать метке.

За вышесказанное я бы получил:

  • "описание": "Харланд Дэвид Сандерс, более известный как полковник Сандерс ...
  • "Созданные организации": KFC
  • «Причина смерти»: лейкоз
  • «Дата смерти»: 16 декабря 1980 г.
  • "Место смерть ": Луисвилл
  • «Дата рождения»: 9 сентября 1890
  • "Пол": мужской

и т.д ...

У меня есть некоторый код, который рекурсивно проходит через JSON, но я новичок с javascript и JSON, и у меня много проблем на первом этапе:

Во-первых, захват «текста» при попытке определить элемент как «элемент» объекта основных свойств; тогда

Во-вторых, извлечение из связанного массива значений любого текстового элемента (если значение является коллекцией, то я хотел бы объединить строки из текста или иным образом игнорировать его).

Надеюсь, это имеет смысл.

пь. код, который я использую, похож на здесь: http://tlrobinson.net/projects/javascript-fun/jsondiff/

1 Ответ

1 голос
/ 01 августа 2010

Это должно помочь вам начать:

<script>
  function cb(response) {
    var props = {};
    var properties = response['/en/colonel_sanders'].result.properties;
    for (var p_id in properties) {
      var prop = properties[p_id];
      props[prop.text]=prop.values[0].text;
    }
    console.log(props);
  }
</script>
<script src="http://www.freebase.com/experimental/topic/standard?id=/en/colonel_sanders&callback=cb"></script>
...