如何在浏览器中读取JSON对象流

时间:2016-10-24 13:24:57

标签: jquery node.js node.js-stream highland.js oboe.js

如下面的示例所示,给定node.js样式对象流,如何通过网页上的http请求读取并处理:

{"id":"one",   "value":"the first object"}
{"id":"two",   "value":"the second object"}
{"id":"three", "value":"the third object"}

1 个答案:

答案 0 :(得分:2)

逐步解析http请求是oboe.js有用的东西。您要发送的内容似乎就像JSON Lines。从技术上讲,oboe仅支持接收单个有效的JSON对象或数组。但我发现你可以让它为你的数据工作:)

oboe('/data.json')
  .node('{id value}', function(x) {
    console.log('object', x)
  })
  .node('!', function(x) {
    console.log('root', x)
  })

您可以将oboe用于加载数据的请求(它使用本机XMLHttpRequest)。然后使用node为任何具有id属性和values属性的对象添加侦听器,或者为!的任何根级别对象添加侦听器。请注意,您必须同时使用它们。

您可以查看工作示例here和源代码here

Gotcha :如果你尝试使用oboe的done函数,有一点值得注意的是,它会触发多次,每个对象一次。这是因为每个都将被解析为完整的有效对象。