JSON 流 Npm 模块查询
JSON Stream Npm modules queries
我正在处理大量 JSON 数据,并在我的 Nodejs 中使用 Json 流模块来获取值。
这是我的 JSON 结构,我必须从元数据和状态元素中解析并收集 4 或 5 个值。
JSON 数组中有 5 个元素。
request({url:'ssss',verify:'False',headers:{'Authorization':'Bearer zzzz','Accept':'application/json','User-Agent':'zzz'}})
.pipe(JSONStream.parse('items'))
.pipe(es.mapSync(function (data) {
console.log("Data "+data);
console.log("Stringify "+ JSON.stringify(data));
var specificValue = JSON.stringify(data);
console.log("Specific Value"+ specificValue[0].metadata.labels.app);
console.log("Parse and Stringify "+ JSON.parse(JSON.stringify(data)));
})) ;
在 console.log Data
中我可以看到 5 个对象 [object Object],[object Object],[object Object],[object Object],[object Object]
在 console.log Stringify
中,我只能看到 JSON 数据的一个块(1 个元素),我看不到所有 5 个元素。
在 console.log Specific Value
我看到 TypeError: Cannot read property 'labels' of undefined
。标签元素在那里显示日志并且查询 specificValue[0].metadata.labels.app
正在工作其他 JSON 路径测试器。
如何在使用 JSON 流模块后解析并获取特定值?
理想情况下,我想做一个 for
循环并获取所有值。
在 console.log Parse and Stringify
我得到 [object Object],[object Object],[object Object],[object Object],[object Object]
注释掉引发错误的行,您将看到 'items' 数组中的每个元素实际上都调用了函数(数据)。该错误会突然终止您的脚本。
每个与 JSONStream.parse('items') 匹配的元素都将通过流发送。因此,es.mapSync 将被多次调用。 "data" 变量在第一次调用时实际上是 items[0],在第二次调用时是 items[1] 等等。
尝试从每个项目中记录一些东西,例如使用这个:
request({url:'ssss',verify:'False',headers:{'Authorization':'Bearer zzzz','Accept':'application/json','User-Agent':'zzz'}})
.pipe(JSONStream.parse('items'))
.pipe(es.mapSync(function (data) {
console.log(data.metadata.labels.app);
}));
我正在处理大量 JSON 数据,并在我的 Nodejs 中使用 Json 流模块来获取值。
这是我的 JSON 结构,我必须从元数据和状态元素中解析并收集 4 或 5 个值。 JSON 数组中有 5 个元素。
request({url:'ssss',verify:'False',headers:{'Authorization':'Bearer zzzz','Accept':'application/json','User-Agent':'zzz'}})
.pipe(JSONStream.parse('items'))
.pipe(es.mapSync(function (data) {
console.log("Data "+data);
console.log("Stringify "+ JSON.stringify(data));
var specificValue = JSON.stringify(data);
console.log("Specific Value"+ specificValue[0].metadata.labels.app);
console.log("Parse and Stringify "+ JSON.parse(JSON.stringify(data)));
})) ;
在 console.log Data
中我可以看到 5 个对象 [object Object],[object Object],[object Object],[object Object],[object Object]
在 console.log Stringify
中,我只能看到 JSON 数据的一个块(1 个元素),我看不到所有 5 个元素。
在 console.log Specific Value
我看到 TypeError: Cannot read property 'labels' of undefined
。标签元素在那里显示日志并且查询 specificValue[0].metadata.labels.app
正在工作其他 JSON 路径测试器。
如何在使用 JSON 流模块后解析并获取特定值?
理想情况下,我想做一个 for
循环并获取所有值。
在 console.log Parse and Stringify
我得到 [object Object],[object Object],[object Object],[object Object],[object Object]
注释掉引发错误的行,您将看到 'items' 数组中的每个元素实际上都调用了函数(数据)。该错误会突然终止您的脚本。
每个与 JSONStream.parse('items') 匹配的元素都将通过流发送。因此,es.mapSync 将被多次调用。 "data" 变量在第一次调用时实际上是 items[0],在第二次调用时是 items[1] 等等。
尝试从每个项目中记录一些东西,例如使用这个:
request({url:'ssss',verify:'False',headers:{'Authorization':'Bearer zzzz','Accept':'application/json','User-Agent':'zzz'}})
.pipe(JSONStream.parse('items'))
.pipe(es.mapSync(function (data) {
console.log(data.metadata.labels.app);
}));