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 返回对象对象的主要内容,如果未能解决你的问题,请参考以下文章

关于JSON.parse()方法的使用说明

JSON.parse() 与 JSON.stringify()

es5新增

JSON的parse()和stringfy()方法

html5调用json数据接口怎么写

JSON对象及方法