【发布时间】:2018-08-28 09:48:45
【问题描述】:
我从远程服务器收到此响应。
A 有 100 件产品\n 带了:\n ID/234 带来了 8 件产品\n ID/212 带来了 72 件产品\n 没有带来\n\n B 有 0 件产品\n 带来了\n 没有带来了\n当我在终端上执行我的节点 js 脚本时,此响应显示为一个表格,如下面的屏幕截图所示。
我希望这个输出为 JSON。
这是我的代码。
function(err, res) {
product=res.content; //store the response in variable
var prodArr = [];
var obj = product.split('\n'); //split the response at new lines
for(var i= 1; i<obj.length; i=i+1)
{
prodArr.push({
data : obj[i]
});
}
console.log(prodArr);
})
}
这里是我执行上述脚本时得到的 JSON。
{ data:'A has 100 products' },
{ data: 'Brought: '},
{ data:'ID/234 has brought 8 products ' },
{ data:'ID/212 has brought 72 products ' },
{ data: 'Not Brought' },
{ data:'B has 0 products' },
{ data: 'Brought: '},
{ data: 'Not Brought '},
但我想要 JSON,它应该如下所示:
{
"data":{
"title": "A has 100 products",
"Brought": {
"1" : "ID/234 has brought 8 products",
"2" : "ID/212 has brought 72 products"
},
"Not Brought" : {
}
}
},
{
"data":{
"title": "B has 0 products",
"Brought": {
},
"Not Brought" : {
}
}
}
我该怎么做?
【问题讨论】:
-
嗨!请通读help center,特别是How do I ask a good question? 您显示的代码不会做任何事情来创建您所说的您想要的输出。在内存中构建对象结构,然后使用
JSON.stringify为其创建 JSON。你最好的选择是做你的研究,search 以获取有关 SO 的相关主题,然后试一试。 如果您在进行更多研究和搜索后遇到困难并且无法摆脱困境,请发布您的尝试minimal reproducible example,并具体说明您遇到的问题。人们会很乐意提供帮助。 -
当您点击创建此帖子时,按钮显示“”。但“我想要”或“我需要”不是问题。 “我如何”通常过于宽泛和模糊,除非它是非常非常简单的东西。我们将帮助您修复错误,而不仅仅是完全为您完成工作。你做了什么研究?你试过什么代码?你面临什么问题?请阅读stackoverflow.com/help/how-to-ask 以获取有关如何提出有用问题的进一步指导。
-
基本上,尽管您需要在盲目地将每一行添加到数组之前开始检查每一行的内容,并使用它来决定您在构建对象时所处的步骤,然后采取相应的行动。试着给自己写一些简单的规则,告诉你(作为一个人)如何手动将数据处理成你想要的结构——就像你在向一个你永远不会当面交谈的人描述它一样(即彻底且没有歧义) ,所以他们不必问你)。这为您提供了您的要求和流程。之后,尝试将其转换为 JavaScript 代码。
标签: javascript arrays json node.js