0

我想将 ndjson 文件中的数据分配给 js 变量。我试过把它放在一个数组和一个对象中,但这让我出错。

我试过这样...

var data = [{"attributes":{}}
{"attributes":{}}
{"attributes":{}}]

var data = {{"attributes":{}}
{"attributes":{}}
{"attributes":{}}}

但这不起作用。

有人可以帮助我如何将此 ndjson 值分配给 js 变量而不会引发错误。

4

2 回答 2

1

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);
}

于 2020-05-12T16:33:03.847 回答
0

对象的Javascript数组会是这样的,看,它们之间的逗号,

var data = [{
  "attributes": {}
},{
  "attributes": {}
},{
  "attributes": {}
}];

console.log(data);

对象内的或对象可以是这样的,我猜你不想要这个,

var data = {
  "attributes": {},
  "attributes": {},
  "attributes": {}
};

console.log(data);

于 2020-05-12T15:57:14.183 回答