如何访问 JSON 对象数组的第一个元素?

Posted

技术标签:

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

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

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

【问题讨论】:

这是一个字符串,而不是一个对象。您需要先使用JSON.parse(str) 将字符串解析为对象。 ***.com/questions/4935632/parse-json-in-javascript JSON.parse(req[mandrill_events])[0].event 将返回 "inbound" @Mr.Polywhirl 与否.. JSON.parse(req.mandrill_events)[0]["event"] @Haketo:是的,我忘了去掉括号... 【参考方案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”

【讨论】:

以上是关于如何访问 JSON 对象数组的第一个元素?的主要内容,如果未能解决你的问题,请参考以下文章

仅访问 JSON 数组中的第一个对象

如何访问数组对象的元素?

像数组一样访问json对象中的元素[重复]

JS中彻底删除json对象组成的数组中的元素

js中如何向json数组添加元素

如何访问和处理嵌套对象、数组或 JSON?