如何使用ndjson值分配javascript变量
我想将ndjson文件中的数据分配到js变量中。我试着把它放在一个数组和一个对象中,但这给我带来了错误 我试过像这样如何使用ndjson值分配javascript变量,javascript,json,ndjson,Javascript,Json,Ndjson,我想将ndjson文件中的数据分配到js变量中。我试着把它放在一个数组和一个对象中,但这给我带来了错误 我试过像这样 var data = [{"attributes":{}} {"attributes":{}} {"attributes":{}}] 及 但这是行不通的 有人能帮助我如何将这个ndjson值分配给js变量而不引发错误吗 对象的Javascript数组如下所示,请参见它们之间的逗号, var数据=[{ “属性”:{} },{ “属性”:{} },{ “属性”:{} }]; 控
var data = [{"attributes":{}}
{"attributes":{}}
{"attributes":{}}]
及
但这是行不通的
有人能帮助我如何将这个ndjson值分配给js变量而不引发错误吗 对象的Javascript数组如下所示,请参见它们之间的逗号
,
var数据=[{
“属性”:{}
},{
“属性”:{}
},{
“属性”:{}
}];
控制台日志(数据)代码>对于流式传输值非常有用-格式
本质上是一个对象数组,但(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,“quox”:true}\n{“may”:{“include”:“nested”,“objects”:[“and”,“arrays”]};
让result=input.split('\n').map(s=>JSON.parse);
log('结果项数组:');
控制台日志(结果);
log('每个项目一次:');
对于(结果的o){
控制台日志(“项:”,o);
}
对于流式传输值很有用(我必须查找这个,我从来没有听说过ndjson)-它本质上是一个对象数组(和数组?),但是(1)最外层的括号[]
被省略,(2)记录之间的分隔符是一个换行符而不是逗号。那么…您是如何获得/接收此流的?您可以JSON.parse()
流中的每个项并将结果对象推送到一个数组中,但解析方式取决于您是如何接收它的,例如,您是否有一个大字符串,其中充满了换行符分隔的对象?由于ndjson的链接,我们对大量新信息进行了投票also@Stephen问题是,,我无法将ndjson值保存到变量中。这是我的错误。这就是我试图做的,我有xyz.js->我已经在其中创建了一个变量var x=ndjson数据,我已经为它分配了ndjson数据。这是我的错误。我在问如何像前面提到的那样为它分配ndjson值。@MaKr-正如我在对你的Q的评论中提到的,很大程度上取决于你是如何获得/接收这个ndjson的,而你在问题中没有说明这一点。您是通过执行一个或一个AJAX请求来接收它的吗?从文件中读取它?你一行一行地拿到了吗?还是一网打尽?如果从文件中读取,如何读取?您不知何故得到了一个包含ndjson格式文本的字符串-显示该代码。如果从一个文件中读取一行,那么这就是o=JSON.parse(line)
。
{"some":"thing"}
{"foo":17,"bar":false,"quux":true}
{"may":{"include":"nested","objects":["and","arrays"]}}