如何在console.log中打印json数据

时间:2015-01-26 11:44:17

标签: javascript arrays json

我无法从javascript访问json数据。请帮助我如何从javascript中的json数据访问数据。

我有像

这样的json数据
{"success":true,"input_data":{"quantity-row_122":"1","price-row_122":" 35.1 "}}

我已经尝试过console.log(数据)但是记录打印对象对象

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

如何打印console.log特定数据? 我需要打印 quantity-row_122 = 1 price-row_122 = 35.1

9 个答案:

答案 0 :(得分:33)

console.log(JSON.stringify(data))会做你需要的。我假设您正在使用基于代码的jQuery。

如果您想要这两个特定值,您可以访问它们并将它们传递给log

console.log(data.input_data['quantity-row_122']); 
console.log(data.input_data['price-row_122']); 

答案 1 :(得分:18)

{"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

答案 2 :(得分:12)

要将对象输出到控制台,您必须首先对对象进行字符串化:

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

答案 3 :(得分:8)

我在console.log中使用'%j'选项来打印JSON对象

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

答案 4 :(得分:2)

如果您只想打印物体,那么

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

如果要访问对象中的字段值,请使用

console.log(data.input_data);

答案 5 :(得分:1)

您还可以使用util库:

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}}}}'

原始来源:https://stackoverflow.com/a/10729284/8556340

答案 6 :(得分:1)

我通常这样做:

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

答案 7 :(得分:0)

对象

  

input_data:对象         price-row_122:“ 35.1”         volume-row_122:“ 1”       成功:正确

答案 8 :(得分:0)

这是一篇旧文章,但我很喜欢,因为(如Narem简要提到的)console.log formatters提供了一些类似于printf的功能。就问题而言,您可以从数据的字符串,数字或json格式化程序中受益。

示例:

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