101

I cant access JSON data from javascript. Please help me how to access data from JSON data in javascript.

i have a JSON data like

{"success":true,"input_data":{"quantity-row_122":"1","price-row_122":" 35.1 "}}

i have tried console.log(data) but log print object object

success:function(data){
     console.log(data);
}

How to print console.log particular data? I need to print

quantity-row_122 = 1
price-row_122 = 35.1
4
  • 32
    try console.log(JSON.stringify(data)); Commented Jan 26, 2015 at 11:47
  • 5
    Use JSON.stringify(data) to convert it into string ang then try to print. Commented Jan 26, 2015 at 11:48
  • 5
    4 same answers within 1 minute, I guess this solution was obvious :P Commented Jan 26, 2015 at 11:48
  • console.log(JSON.stringify(data)); is the simplest answer, but if you want something more fancy you can use console-log-json from the NPM repository: npmjs.com/package/console-log-json Commented Jul 13, 2022 at 15:24

9 Answers 9

101

console.log(JSON.stringify(data)) will do what you need. I'm assuming that you're using jQuery based on your code.

If you're wanting those two particular values, you can just access those and pass them to log.

console.log(data.input_data['quantity-row_122']); 
console.log(data.input_data['price-row_122']); 
Sign up to request clarification or add additional context in comments.

4 Comments

this works good but 'quantity-row_122' field are generated dynamically and it comes from html form.so what we can do? so i want to print as like array
Need to quote those 2 key names
Why not use console.log("%j", something)?
This is the simplest answer. But If you want something more fancy you can use console-log-json from the NPM repository: npmjs.com/package/console-log-json
69

I used '%j' option in console.log to print JSON objects

console.log("%j", jsonObj);

1 Comment

I'm getting console log as: [Circular]
37

To output an object to the console, you have to stringify the object first:

success:function(data){
     console.log(JSON.stringify(data));
}

Comments

37

I usually do like this:

console.log(JSON.stringify(data, undefined, 4));

2 Comments

What is the number 4 for?
The number 4 represents how many spaces to indent per level of depth each output line is. See documentation here.
28
{"success":true,"input_data":{"quantity-row_122":"1","price-row_122":" 35.1 "}}

console.dir() will do what you need. It will give you a hierarchical structure of the data.

success:function(data){
     console.dir(data);
}

like so

> Object
  > input_data: Object
      price-row_122: " 35.1 "
      quantity-row_122: "1"
    success: true

I don't think you need console.log(JSON.stringify(data)).

To get the data you can do this without stringify:

console.log(data.success); // true
console.log(data.input_data['quantity-row_122']) // "1"
console.log(data.input_data['price-row_122']) // " 35.1 "

Note

The value from input_data Object will be typeof "1": String, but you can convert to number(Int or Float) using ParseInt or ParseFloat, like so:

 typeof parseFloat(data.input_data['price-row_122'], 10) // "number"
 parseFloat(data.input_data['price-row_122'], 10) // 35.1

Comments

8

If you just want to print object then

console.log(JSON.stringify(data)); //this will convert json to string;

If you want to access value of field in object then use

console.log(data.input_data);

Comments

4

You can also use util library:

const util = require("util")

> myObject = {1:2, 3:{5:{6:{7:8}}}}
{ '1': 2, '3': { '5': { '6': [Object] } } }

> util.inspect(myObject, {showHidden: true, depth: null})
"{\n  '1': 2,\n  '3': { '5': { '6': { '7': 8 } } }\n}"

> JSON.stringify(myObject)
'{"1":2,"3":{"5":{"6":{"7":8}}}}'

original source : https://stackoverflow.com/a/10729284/8556340

Comments

1

This is an old post but I'm chiming in because (as Narem briefly mentioned) a few of the printf-like features are available with the console.log formatters. In the case of the question, you can benefit from the string, number or json formatters for your data.

Examples:

console.log("Quantity %s, Price: %d", data.quantity-row_122, data.price-row_122);
console.log("Quantity and Price Data %j", data);

Comments

-1

Object

input_data: Object price-row_122: " 35.1 " quantity-row_122: "1" success: true

1 Comment

A few words explaining your answer would be helpful

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.