I am trying to loop through the following:
{ "messages": [{ "msgFrom": "13223821242", "msgBody": "Hi there" }, { "msgFrom": "Bill", "msgBody": "Hello!" }] }
I want to retrieve msgFrom
and msgBody
I’ve tried:
for (var key in data) { var obj = data[key]; for (var prop in obj) { if(obj.hasOwnProperty(prop)){ console.log(prop + " = " + obj[prop]); } } }
But the console log prints [Object]
Any ideas what im doing wrong?
Advertisement
Answer
It appears you may just have missed the "messages"
property in the data
, so the loop is likely iterating the root Object
rather than the Array
:
for (var key in data.messages) { var obj = data.messages[key]; // ... }
Unless data
was set to messages
before the given snippet.
Though, you should consider changing that to a normal for
loop for the Array
:
for (var i = 0, l = data.messages.length; i < l; i++) { var obj = data.messages[i]; // ... }