【问题标题】:Get single key value from JSON with Node使用 Node 从 JSON 中获取单个键值
【发布时间】:2020-05-25 14:15:45
【问题描述】:

我正在使用RESTFUL API 获取一些JSON 数据,这是代码:

const request= require('request');

const options = { 
    url: 'https://myurl.com/',
    headers: {
        'x-functions-key': 'mykey'
    }
};

request.get(options, (err, response, body) =>{
    if(err){
        console.log("Error!")
    }

    const obj = JSON.parse(body);

    //console.log(obj.id);
    console.log(body);

});

如果我只使用body 参数,这是来自console.logresponse

{
    "id": "19678u36-au71-4112-0057-950jjkca61d1",
    "phone": "",
    "address": "{\"cep\":\"00000-000\",\"city\":\"Belo Horizonte\",\"state\":\"MG\",\"country\":\"Brasil\",\"street\":\"My Street\",\"district\":\"My District\",\"number\":\"000\",\"complement\":\"000\"}",
    "items": "{\"tax\":12,\"amount\":2,\"items\":[{\"type\":\"NILO\",\"name\":\"Nilo Zack\",\"quantity\":1}]}",
    "userEmail": "marcel@onboardmobility.com",
    "userData": "{\"name\":\"User Name\",\"document\":\"000.000.000-00\",\"phone\":\"\",\"email\":\"user@email.com\"}",
    "order": "{\"tid\":\"ch_5PXxuyoqw4\",\"notes\":\"XQ22ARP\",\"status\":2}",
    "createdAt": "2020-05-05T17:50:45.707Z",
    "updatedAt": "2020-05-05T17:50:45.708Z"
  },

我只想打印id 键,但是当我运行console.log(obj.id) 时,我从控制台收到undefined 响应。有任何想法吗?也许我没有正确解析JSON 数据,不知道。感谢您的帮助!

【问题讨论】:

    标签: node.js json api


    【解决方案1】:

    基于你的body 中有一个, 的事实,我假设响应不是一个对象,而是一个数组。

    request.get(options, (err, response, body) => {
        if (err) {
            console.log("Error!")
        }
    
        const items = JSON.parse(body);
        console.log(items[0].id);
    });
    

    【讨论】:

    • 是的!抱歉这个菜鸟问题,我是新手。如果我在这个数组中有一个数组怎么办?像这样: { "address": "{\"cep\":\"30410-600\",\"city\":\"Belo Horizo​​nte\"}"},?我也需要使用“地址”上的位置,不是吗?
    • 如果您的数据在花括号内 - 它是一个对象。如果您的数据在方括号内 - 它是一个数组。您不需要在“地址”上使用索引,因为它有一个对象 - 使用 address.city 例如
    • 如果它回答了您的问题,请将其标记为已回答。答案左侧有一个复选框。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 2014-06-29
    • 2019-04-09
    • 2017-02-09
    • 1970-01-01
    相关资源
    最近更新 更多