Lemon Kazi
Lemon Kazi

Reputation: 3311

multidimensional json parse in javascript

How to parse json?

var text = '{"body":[
              {"name":"name","value":"test1"},
              {"name":"inquiry_type","value":"test2"}
            ]}'; 
console.log(text);
var obj = JSON.parse(text.body);
cosole.log (obj);

Here obj console displaying error.

Upvotes: 0

Views: 114

Answers (4)

ninesalt
ninesalt

Reputation: 4354

You're supposed to extract body after you parse your JSON, not before.

var text = `{"body":[
          {"name":"name","value":"test1"},
          {"name":"inquiry_type","value":"test2"}
        ]}`; 

var obj = JSON.parse(text).body;
console.log(obj)  //note that you misspelled this too

Upvotes: 3

Arkerone
Arkerone

Reputation: 2026

Your variable text is a multiline string you must use template string :

var text = `{"body":[
          {"name":"name","value":"test1"},
          {"name":"inquiry_type","value":"test2"}
        ]}`;

or write it in single line :

var text = '{"body":[{"name":"name","value":"test1"},{"name":"inquiry_type","value":"test2"}]}'; 

And you must save the parsed text in a variable like that :

var text = '{"body":[{"name":"name","value":"test1"},{"name":"inquiry_type","value":"test2"}]}'; 

text = JSON.parse(text);
console.log(text);
var obj = text.body;
console.log(obj);

Upvotes: 1

Hassan Imam
Hassan Imam

Reputation: 22574

For multiline statements, use template literals. Your JSON string is text, once you parse it you will get an object on which you can access body property using dot notation or bracket notation.

var text = `{"body":[
              {"name":"name","value":"test1"},
              {"name":"inquiry_type","value":"test2"}
            ]}`; 
console.log(text);
var obj = JSON.parse(text).body;
console.log (obj);

Upvotes: 2

SLaks
SLaks

Reputation: 887887

JSON.parse() takes a string of JSON and parses it, as the name suggests.

You have an array, not a string of JSON, so you don't need to do anything.

Upvotes: -3

Related Questions