1

This is how my response body looks like. Its stored in a variable and when i use console.log(body) I get the following.

[
 {
 "key1":"value1",
 "key2":"value2",
 "key3":"value3"
 }
]

Im trying to access "key3" using the following

console.log(body[0].key3) 

I get undefined. Im not sure what is wrong here. If i just do

console.log(body[0])

im getting a string [

Thanks for your help here.

Jack Bashford
44.3k11 gold badges56 silver badges84 bronze badges
asked Mar 7, 2019 at 23:42
4
  • 2
    the response you are getting is probably a string. you'd have to do something like JSON.parse(body) first Commented Mar 7, 2019 at 23:45
  • looks like your body isn't actually that object, but a JSON (string) representation. Try JSON.parse on it first. Commented Mar 7, 2019 at 23:45
  • Thanks guys! Like the everyone mentioned its a string. I was a able to use the solutions given below. Commented Mar 8, 2019 at 0:01
  • Related: Access / process (nested) objects, arrays or JSON Commented Mar 8, 2019 at 0:14

2 Answers 2

3

The Problem Explained

Your JS is looking at the property on a specific character:

Take a look at the following example that will help demonstrate what is going on:

const string = 'Hello';
console.log(string[0] === 'H'); // true
console.log('H'.key3 === undefined); // true


The Solution

You need to JSON.parse the string:

const body = `
[
 {
 "key1":"value1",
 "key2":"value2",
 "key3":"value3"
 }
]
`;
const parsed = JSON.parse(body);
console.log(parsed[0].key3);

answered Mar 7, 2019 at 23:49
Sign up to request clarification or add additional context in comments.

1 Comment

Nitpick: The return value of JSON.parse is not JSON
1

body sounds like it's a string - JSON.parse it to an object:

var body = '[{"key1": "value1","key2": "value2","key3": "value3"}]';
console.log(body[0]);
body = JSON.parse(body);
console.log(body[0].key3);

answered Mar 7, 2019 at 23:45

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.