【问题标题】:How to access first element of JSON object array?如何访问 JSON 对象数组的第一个元素?
【发布时间】:2015-05-15 22:51:25
【问题描述】:

我预计 mandrill_events 只包含一个对象。如何访问其event-property

var req = { mandrill_events: '[{"event":"inbound","ts":1426249238}]' }

【问题讨论】:

  • 这是一个字符串,而不是一个对象。您需要先使用JSON.parse(str) 将字符串解析为对象。
  • JSON.parse(req[mandrill_events])[0].event 将返回 "inbound"
  • @Mr.Polywhirl 与否.. JSON.parse(req.mandrill_events)[0]["event"]
  • @Haketo:是的,我忘了去掉括号...

标签: javascript arrays json


【解决方案1】:

'[{"event":"inbound","ts":1426249238}]' 是一个字符串,你不能访问那里的任何属性。您必须使用 JSON.parse() 将其解析为对象,然后像处理普通对象一样处理它

【讨论】:

    【解决方案2】:

    用 Javascript 解析后,试试这个:

    mandrill_events[0].event
    

    【讨论】:

      【解决方案3】:

      事件属性似乎是字符串首先你必须将其解析为 json :

       var req = { mandrill_events: '[{"event":"inbound","ts":1426249238}]' };
       var event = JSON.parse(req.mandrill_events);
       var ts =  event[0].ts
      

      【讨论】:

        【解决方案4】:

        要回答您的名义问题,您使用[0] 访问第一个元素,但就目前而言,mandrill_events 包含一个字符串而不是数组,因此mandrill_events[0] 只会为您提供第一个字符“[”。

        所以要么将您的来源更正为:

        var req = { mandrill_events: [{"event":"inbound","ts":1426249238}] };
        

        然后是req.mandrill_events[0],或者如果您不知道它是一个字符串,请解析该字符串包含的 JSON:

        var req = { mandrill_events: '[{"event":"inbound","ts":1426249238}]' };
        var mandrill_events = JSON.parse(req.mandrill_events);
        var result = mandrill_events[0];
        

        【讨论】:

        • 感谢您指出如果变量是字符串而不是对象,[ 将作为内容返回
        【解决方案5】:
        var req = { mandrill_events: '[{"event":"inbound","ts":1426249238}]' }
        
        console.log(Object.keys(req)[0]);
        

        创建任何 Object 数组 (req),然后只需执行 Object.keys(req)[0] 即可选择 Object 数组中的第一个键。

        【讨论】:

        • 虽然总是欢迎回答,但包括对如何代码解决问题的简要说明对其他人更有帮助。它还降低了帖子最终进入“非常低质量”队列的可能性(就像这个一样)。
        • 您的回答帮助了我,但需要注意的一件事是Object.keys(req)[0] 将返回该数组中对象的 id,以便获得您需要的实际值:mandrill_events[Object.keys(req)[0]].event
        • 以及如何使用此代码获取值?
        • eventts?
        【解决方案6】:

        假设mandrill_events的内容是一个对象(不是字符串),你也可以使用shift()函数:

        var req = { mandrill_events: [{"event":"inbound","ts":1426249238}] };
        var event-property = req.mandrill_events.shift().event;
        

        【讨论】:

          【解决方案7】:

          我会用一个通用的例子来解释这个:

          var obj = { name: "John", age: 30, city: "New York" };
          var result = obj[Object.keys(obj)[0]];
          

          结果变量的值为“John”

          【讨论】:

            猜你喜欢
            • 2021-09-19
            • 2020-09-06
            • 2019-09-30
            • 2020-02-28
            • 1970-01-01
            • 1970-01-01
            • 2021-06-09
            • 2018-05-30
            • 2022-01-19
            相关资源
            最近更新 更多