JSON.parse 返回对象对象
Posted
技术标签:
【中文标题】JSON.parse 返回对象对象【英文标题】:JSON.parse returns object object 【发布时间】:2018-12-30 12:38:10 【问题描述】:我正在尝试获取项目的值,但是当我在控制台中打印值时,它会显示对象而不是值。如何访问这些值?
这是我的代码:
var options2;
request.post(opts,function(error,response,body)
if (!error && response.statusCode == 200 || response.statusCode == 201)
var jsonResponse = JSON.parse(body);
console.log("JSON IS =" + jsonResponse.rows);
options2 = jsonResponse.rows.reduce((acc, obj) => acc.concat(obj['Item']), []);
else
console.log(body)
);
我错过了什么?
【问题讨论】:
你的身体反应是什么类型的?? 实际的json @Hardik BODY IS = "columns" : [ "Items" ], "rows" : [ "Item" : "ABC" , "Item" : "DEF" ] response ( "columns" : [ "Items" ], "rows" : [ "Item" : "ABC" , "Item" : "DEF" ]
) 看起来像一个对象,您不必再次解析它。
【参考方案1】:
在新行中打印,例如:
console.log("JSON IS =");
console.log(jsonResponse.rows);
或者像这样用“,”替换“+”,
console.log("JSON IS = ", jsonResponse.rows);
【讨论】:
或者您可以在 console.log 中添加逗号作为分隔符。 console.log("JSON IS =", jsonResponse.rows);【参考方案2】:var options2;
request.post(opts,function(error,response,body)
if (!error && response.statusCode == 200 || response.statusCode == 201)
var jsonResponse = JSON.parse(body);
// **wrap rows in JSON.stringify()**
console.log("JSON IS =" + JSON.stringify(jsonResponse.rows));
options2 = jsonResponse.rows.reduce((acc, obj) => acc.concat(obj['Item']), []);
else
console.log(body)
);
【讨论】:
【参考方案3】:如果主要思想只是调试对象数据(进行控制台日志记录),您可能需要使用 json.stringify 方法。 https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Global_Objects/JSON/stringify 这将为您提供对象的字符串表示形式。
【讨论】:
这将不显示实际的对象,而是一个很难阅读/调试的简单字符串。 他正在使用带有字符串和对象的 + ,这是问题所在。他需要两个console.log
语句或用,
而不是+
分隔当前一个以上是关于JSON.parse 返回对象对象的主要内容,如果未能解决你的问题,请参考以下文章