如何在 console.log 中打印 JSON 数据?

Posted

技术标签:

【中文标题】如何在 console.log 中打印 JSON 数据?【英文标题】:How to print JSON data in console.log? 【发布时间】:2015-03-24 19:51:04 【问题描述】:

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

我有一个类似的 JSON 数据

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

我尝试过 console.log(data) 但记录打印对象对象

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

如何打印 console.log 特定数据? 我需要打印

quantity-row_122 = 1
price-row_122 = 35.1

【问题讨论】:

试试console.log(JSON.stringify(data)); 使用 JSON.stringify(data) 将其转换为字符串 ang 然后尝试打印。 1 分钟内有 4 个相同的答案,我想这个解决方案很明显:P 【参考方案1】:

我通常是这样的:

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

【讨论】:

【参考方案2】:

你也可以使用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://***.com/a/10729284/8556340

【讨论】:

【参考方案3】:

这是一篇旧帖子,但我正在插话,因为(正如 Narem 简要提到的)console.logformatters 提供了一些类似 printf 的功能。对于这个问题,您可以从数据的字符串、数字或 json 格式化程序中受益。

示例:

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

【讨论】:

【参考方案4】:

对象

输入数据:对象 price-row_122:“35.1” 数量-row_122:“1” 成功:是的

【讨论】:

几句话解释你的答案会很有帮助【参考方案5】:

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

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

【讨论】:

【参考方案6】:
"success":true,"input_data":"quantity-row_122":"1","price-row_122":" 35.1 "

console.dir() 将满足您的需求。它将为您提供数据的层次结构。

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

像这样

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

我认为你不需要console.log(JSON.stringify(data))

要获取数据,您可以在没有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 "

注意

input_data 对象的值将是typeof "1"String,但您可以使用 ParseInt 或 ParseFloat 转换为 number(Int or Float),如下所示:

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

【讨论】:

【参考方案7】:

console.log(JSON.stringify(data)) 将满足您的需求。我假设您正在使用基于您的代码的 jQuery。

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

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

【讨论】:

这很好用,但 'quantity-row_122' 字段是动态生成的,它来自 html 表单。那么我们能做些什么呢?所以我想像数组一样打印 需要引用这两个键名【参考方案8】:

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

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

【讨论】:

【参考方案9】:

如果你只想打印对象,那么

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

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

console.log(data.input_data);

【讨论】:

以上是关于如何在 console.log 中打印 JSON 数据?的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 console.log 打印完整的 JSON

vue中用console.log打印对象的各个属性值

console.llog 如何打印对象

如何获取浏览器|控制台打印出来的完整数据,也就是console.log()出来的数据

关于console.log() 打印得引用类型得数据得相关问题

JS打印返回的网络请求时出现[object],如何解决