Javascript 使用JSONStream.Parse解析整个对象
我有一个传入的JSON数据对象结构,如下所示:Javascript 使用JSONStream.Parse解析整个对象,javascript,node.js,stream,jsonstream,Javascript,Node.js,Stream,Jsonstream,我有一个传入的JSON数据对象结构,如下所示: { foo: 3, bar: [ { key:value }, { key:value } ] } let obj = {foo:{}, bar:[]} const fooStream = JSONStream.parse(["foo", t
{
foo: 3,
bar: [
{
key:value
},
{
key:value
}
]
}
let obj = {foo:{}, bar:[]}
const fooStream = JSONStream.parse(["foo", true]);
fooStream.on("data", (data)=>{obj.foo = data;})
const barStream = JSONStream.parse(["bar", true]);
barStream.on("data", (data)=>{obj.bar.push(data);})
_some_stream.pipe(fooStream);
_some_stream.pipe(barStream);
我想以一种方式对待福,以另一种方式对待酒吧。但是当我在对象上使用JSONStream.parse(“*”)时,它收到的第一个块是“3”
由于数据对象非常小,我希望拖缆返回整个对象,然后我将对其进行操作。不过,我仍然希望使用streams与项目的其余部分保持一致。如何强制JSONStream将整个对象提供给我?虽然有点晚了,但我还是这样做了:
{
foo: 3,
bar: [
{
key:value
},
{
key:value
}
]
}
let obj = {foo:{}, bar:[]}
const fooStream = JSONStream.parse(["foo", true]);
fooStream.on("data", (data)=>{obj.foo = data;})
const barStream = JSONStream.parse(["bar", true]);
barStream.on("data", (data)=>{obj.bar.push(data);})
_some_stream.pipe(fooStream);
_some_stream.pipe(barStream);
为什么不
JSON
JSONStream
甚至不是一个标准的JavaScript对象(您可能正在使用Node,这是一个第三方包)。@lvaroGonzález它是Node。我希望与我们获取其余数据的方式保持一致——目前,它们是在foreach中用pipe()函数调用的,我宁愿使用JSONStream,也不愿让构建器不稳定地调用它。如果我读取的数据正确,这是不可能的。看起来这个包正是用于使用管道结果进行部分解析的。如果您想获得整个对象,请改用JSON
。这是两个不同的任务,我认为你不能在这里实现完全的“一致性”(你不应该)