【问题标题】:Cannot extract key/value from json无法从 json 中提取键/值
【发布时间】:2017-06-08 22:34:45
【问题描述】:

在 node.js 中这样获取资源:

requestify.post('myurl')
.then(function (response) {
    console.log(response);
    console.log(response.body);
});

console.log(response) 给出:

Response {
    code: 200,
    body: '{"guid":"abcd","nounce":"efgh"}' 
}

console.log(response.body) 给出:

{"guid":"abcd","nounce":"efgh"}

但是,由于某种原因,我无法访问“guid”或“nounce”键。在这两种情况下,我都会得到一个未定义的。 我都试过了

console.log(response.body.guid);

console.log(response.body['guid']);

【问题讨论】:

  • 你能告诉我'{"guid":"abcd","nounce":"efgh"}' 的类型吗?
  • 你需要 JSON.parse 那个 JSON 字符串

标签: javascript json


【解决方案1】:

主体是字符串,但您希望它是一个对象。只需转换它:

JSON.parse(response.body).guid

【讨论】:

    【解决方案2】:

    body 属性的值似乎是一个字符串。您必须将其解析为 JSON:

    console.log(JSON.parse(response.body).guid);
    

    【讨论】:

      【解决方案3】:

      需要将返回类型设置为

      response.writeHead(200, {"Content-Type": "application/json"});
      

      因此您的接收端会在收到时自动将其设为对象。 见Responding with a JSON object in NodeJS (converting object/array to JSON string)

      【讨论】:

        猜你喜欢
        • 2020-05-03
        • 1970-01-01
        • 1970-01-01
        • 2015-12-19
        • 1970-01-01
        • 2017-07-30
        • 1970-01-01
        • 1970-01-01
        • 2021-12-16
        相关资源
        最近更新 更多