Javascript 将JSON头和行转换为节点JS中的对象键
我从API获取节点JS中JSON格式的数据。但是JSON有标题和行格式数据(还附带了屏幕截图)。它包含数据“供应商、价格、SKU、错误”。我想把这些数据放到下面的对象中。我可以通过循环中的键访问其中任何一个。e、 g(产品价格) 我的目的是格式化对象中的API数据,以便使用键和索引进行访问。请在这方面帮助我。我会感激你的帮助Javascript 将JSON头和行转换为节点JS中的对象键,javascript,node.js,json,reactjs,api,Javascript,Node.js,Json,Reactjs,Api,我从API获取节点JS中JSON格式的数据。但是JSON有标题和行格式数据(还附带了屏幕截图)。它包含数据“供应商、价格、SKU、错误”。我想把这些数据放到下面的对象中。我可以通过循环中的键访问其中任何一个。e、 g(产品价格) 我的目的是格式化对象中的API数据,以便使用键和索引进行访问。请在这方面帮助我。我会感激你的帮助 感谢您尝试用以下内容更改代码: request(options, function (error, response, body) { if (error) throw
感谢您尝试用以下内容更改代码:
request(options, function (error, response, body) {
if (error) throw Error(error);
let JSONdata = JSON.parse(body);
console.log(typeof JSONdata); // JSONdata is an object, so you can start to manipulate it
console.log(JSONdata); // show in console the object
for (var key in JSONdata) {
for (var innerKey in JSONdata[key]) {
console.log("Key: " + innerKey + " value: " + JSONdata[key][innerKey]);
}
}
});
我在CodeSandbox中发布了一个示例
从MDN文档:
parse()方法解析JSON字符串,构造该字符串所描述的JavaScript值或对象
我希望我已经帮助了您。我看到您使用了JSON.stringify,然后是JSON.parse。这有什么原因吗?如果两个都省略了,会得到什么?如果只省略JSON.stringify(body),会发生什么?不,没有任何具体原因。我只是在检查不同的方法来获得结果谢谢@Nicola Lanzoni我以前尝试过这个方法,但是得到了解决方案,用products=[]pro.rows.forEach(row=>{let product={};for(设z=0;z
request(options, function (error, response, body) {
if (error) throw Error(error);
let JSONdata = JSON.parse(body);
console.log(typeof JSONdata); // JSONdata is an object, so you can start to manipulate it
console.log(JSONdata); // show in console the object
for (var key in JSONdata) {
for (var innerKey in JSONdata[key]) {
console.log("Key: " + innerKey + " value: " + JSONdata[key][innerKey]);
}
}
});