解析 Freebase 主题 HTTP API - JSON 和JavaScript

发布于 2024-09-12 03:58:03 字数 939 浏览 9 评论 0原文

我正在尝试解析 JSON 输出:

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

我想使用 Javascript 将基本数据放入数组中。在“属性”对象中,我想抓取“属性”下一层的任何“文本”元素作为标签,并抓取“值”对象下的“文本”以匹配标签。

对于上述内容,我会得到:

  • "description": "Harland David 桑德斯,更广为人知的名字是上校 桑德斯……
  • “成立组织”:肯德基
  • “死因”:白血病
  • “死亡日期”:1980年12月16日
  • “地点 死亡”:路易斯维尔
  • “出生日期”: 1890 年 9 月 9 日
  • “性别”:男

等...

我有一些代码可以递归地运行 JSON,但我是 javascript 和 JSON 的新手,并且在第一步中遇到了很多麻烦:

首先,尝试获取“文本”通过将元素标识为主要属性对象的“元素”;然后

其次从关联值数组中抓取任何文本元素(如果该值是一个集合,那么我想连接文本中的字符串或忽略它)。

我希望这是有道理的。

注意。我使用的代码与这里类似: http://tlrobinson.net/projects/javascript-fun/jsondiff/

I am trying to parse a JSON output:

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

I'd like to put the basic data into an array using Javascript. In the "properties" object I'd like to grab any "text" element one level under "properties" as a label and grab the "text" under the "values" object to match the label.

For the above I would get:

  • "description": "Harland David
    Sanders, better known as Colonel
    Sanders...
  • "Organizations founded": KFC
  • "Cause of death": Leukemia
  • "Date of death": Dec 16, 1980
  • "Place of
    death": Louisville
  • "Date of birth":
    Sep 9, 1890
  • "Gender": Male

etc...

I have some code which recursively runs through the JSON but I am a novice with javascript and JSON and am having a lot trouble in step one:

Firstly, grabbing the "text" trying by identifying an element as being "an element of" the main properties object; then

Secondly grabbing from the associated values array any text element (if the value is a collection then I would like to concatenate the strings from the text or otherwise ignore it).

I hope that make sense.

nb. the code I use is similar to here:
http://tlrobinson.net/projects/javascript-fun/jsondiff/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

童话里做英雄 2024-09-19 03:58:03

这应该可以帮助您开始:

<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>

This should get you started:

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文