我无法从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
答案 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}}}}'
答案 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);