当我这样做时:
console.log(JSON)
它将在控制台中以JSON语法显示:
[ { test1: 'data',
test2: 'data',
test3: 'data' } ]
当我这样做时:
console.log(`JSON Data\n\n${JSON}`)
它会显示[object Object]
所以我这样做:
console.log(`JSON Data\n\n${JSON.stringify(JSON)}`)
以字符串语法显示它:
[{"test1":"data","test2":"data","test3":"data"}]
我想做一个JSON数据的console.log,然后是模板文字中的一些文本,同时保留JSON语法,如下所示:
[ { test1: 'data',
test2: 'data',
test3: 'data' } ]
JSON Data Displayed Above
答案 0 :(得分:2)
使用模板文字时,结果是字符串。如果要在记录数据之前/之后添加文本标签或其他值,请用逗号分隔它们:
var data = { a: 1, b: [1, 2] };
console.log('Before:', data, '\n\nJSON Data Displayed Above');
console.log(data, '\n\nAfter');
console.log('Before\n', data, '\n\nAfter');
答案 1 :(得分:0)
或者,您可以更改对象转换为字符串的方式:
Object.prototype.toString = function(){
return JSON.stringify(this);
};
现在这将按预期工作:
console.log(`JSON Data\n\n${JSON}`)
答案 2 :(得分:0)
TestDatabase.class
实现是特定于浏览器的。在现代浏览器中,对象可以以人类可读的形式输出。
现代实现支持多个console
参数(如另一个答案所示):
console
在旧版浏览器中,这可能无法正常工作;多个console.log(`JSON Data`, json);
参数最初用于string substitutions,如果第一个参数意外包含替换语法,则可能存在问题,例如console.log
。
实现字符串,人类可读输出的兼容的跨平台方法是配置对象字符串化:
%s
这种方法的好处是输出在任何地方保持不变,无论是遗留浏览器还是记录器拦截的console.log(`JSON Data\n\n${JSON.stringify(json, null, 2)}`)
呼叫。