【问题标题】:Print value of JSON that is inside an array, and this array is inside another array打印数组内的 JSON 值,并且该数组在另一个数组内
【发布时间】:2017-08-02 22:21:53
【问题描述】:

也许这个问题是重复的,但我没有找到可以回答我的问题的答案。

我正在尝试访问 JSON 中的值,但这是在数组中,并且在另一个数组中。这是一个例子:

原始 JSON:

{"object":"page","entry":
[{"id":"488064221540488","time":1501681094769,"messaging":[{"sender":
{"id":"1559711167437676"},"recipient":
{"id":"488064221540488"},"timestamp":1501681094579,"message":
{"mid":"mid.$cAAHhEUCp_UVj1HBXs1do8-
BMiIPg","seq":559,"text":"Thunder."}}]}]}

我正在尝试访问发件人密钥的值:

...[{"sender": {"id: "1559711167437676"}, ...

我正在尝试通过原始请求的属性进行访问,但未定义。我正在尝试这样。

console.log(JSON.stringify(req.body.entry.messaging))    // At this point, I get undefined

我尝试过使用 JSON.parser,但抛出了相同的结果。这只是我用来获取结果的多个语句之一。

有人可以帮我打印这个确切的值,你可以看到它在另一个数组的内部,这听起来很复杂,但我不知道。希望你能帮助我。

【问题讨论】:

    标签: arrays json node.js express


    【解决方案1】:

    entry 是一个数组(注意方括号),所以你至少需要引用你感兴趣的索引。messageing 也是如此,所以像这样进入id

    req.body.entry[0].messaging[0].sender.id
    

    const req = { 
        body: {
            "object": "page",
            "entry": [{
                "id": "488064221540488",
                "time": 1501681094769,
                "messaging": [{
                    "sender": {
                        "id": "1559711167437676"
                    },
                    "recipient": {
                        "id": "488064221540488"
                    },
                    "timestamp": 1501681094579,
                    "message": {
                        "mid": "mid.$cAAHhEUCp_UVj1HBXs1do8-BMiIPg",
                        "seq": 559,
                        "text": "Thunder."
                    }
                }]
            }]
        }
    };
    
    const id = req.body.entry[0].messaging[0].sender.id;
    console.log(id, parseInt(id));

    【讨论】:

    • trincot,最后一个问题:为什么当我尝试转换如下所示的变量时:var sample = JSON.stringify(req.body.entry[0].messaging[0].sender. ID); to var sample2 = parseInt(sample),为什么sample2的结果是NaN?
    • 这意味着您的id 值之一不是数字。我根据您提供的示例数据在我的答案中添加了一个 sn-p:没有发生该问题。
    猜你喜欢
    • 2016-09-30
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多