ndjson对于流式值很有用——格式本质上是一个对象数组,但 (1) 最外面的括号 [] 被省略,因此数组是隐含的,(2) 记录之间的分隔符是换行符而不是逗号。基本上是一行行,其中每一行都是 JSON 格式的记录。规范不清楚记录/行本身是否可以是数组,但对象可以包含数组。
使用规范中提供的示例,您必须以某种方式收到此文本流:
{"some":"thing"}
{"foo":17,"bar":false,"quux":true}
{"may":{"include":"nested","objects":["and","arrays"]}}
假设您已收到此信息并将其存储在一个变量中,该变量将是一个字符串input
. 然后,您可以在换行符上打破这个字符串,通过input.split('\n')
解析每个字符串JSON.parse(…)
并将结果保存在一个数组中。
let input = '{"some":"thing"}\n{"foo":17,"bar":false,"quux":true}\n{"may":{"include":"nested","objects":["and","arrays"]}}';
let result = input.split('\n').map(s => JSON.parse(s));
console.log('The resulting array of items:');
console.log(result);
console.log('Each item at a time:');
for (o of result) {
console.log("item:", o);
}