嵌套 JSON 对象在打印时不显示
Nested JSON Object not showing up when printing it
无法显示深层嵌套的 JSON 要显示的对象 up.Have 为此一直在查看各种 Whosebug 帖子。感谢对这个新手问题的任何帮助。我希望它显示运动员数组中运动员 JSON 对象的详细信息。
它显示为 [Object].
eventUnitResults: [ { is_team: true, athletes: [ [Object], [Object] ] },
{ is_team: true, athletes: [ [Object], [Object] ] } ]
const result = {}
let eventUnitResults = [];
let athletes = [];
for (i=0; i < 2; i++) {
const athlete = {};
athlete.athlete_name = 'Ram' + i;
athlete.athlete_gender = 'M'
athletes.push(athlete);
}
for (j=0;j < 2;j++) {
const nestedResult = {};
nestedResult.is_team = true;
if (athletes) {
nestedResult.athletes = athletes;
}
console.log('nestedResult:', nestedResult);
if (nestedResult) {
eventUnitResults.push(nestedResult);//TODO:
//eventUnitResults.push(JSON.stringify(nestedResult));//TODO:
}
}
console.log('eventUnitResults:', eventUnitResults);//<==== how can I get deeply nested values of athletes showing up properly here
if (eventUnitResults) {
result.event_unit_results = eventUnitResults;
}
console.log('result:', result)
TIA
如果记录对象,您可能希望将实际对象转换为字符串。
背景
如果将其与 java(或大多数语言)进行比较:
System.out.println(object);
打印您的 object.toString()
。除非你覆盖它,否则就是内存地址。
问题
在JavaScript中:
console.log(object);
[object, object]
会打印 [object, object]
因为它会打印你正在打印的内容。在这种情况下,它不知道您期望包含 JSON.
的字符串
注意这并不适用于所有浏览器。例如Chrome,想帮你解决,交互打印JSON值;你可以折叠和展开它。
解决方案
此问题的解决方案是明确告诉控制台打印 json 字符串。您可以通过调用内置 json 对象的函数来对对象进行字符串化。
JSON.stringify(object);
{ "content": "json" }
为了完整性,通过将打印输出设置为 4 个空格缩进来打印对象:
JSON.stringify(object, null, 4);
打印:
{
"content": "json"
}
无法显示深层嵌套的 JSON 要显示的对象 up.Have 为此一直在查看各种 Whosebug 帖子。感谢对这个新手问题的任何帮助。我希望它显示运动员数组中运动员 JSON 对象的详细信息。 它显示为 [Object].
eventUnitResults: [ { is_team: true, athletes: [ [Object], [Object] ] },
{ is_team: true, athletes: [ [Object], [Object] ] } ]
const result = {}
let eventUnitResults = [];
let athletes = [];
for (i=0; i < 2; i++) {
const athlete = {};
athlete.athlete_name = 'Ram' + i;
athlete.athlete_gender = 'M'
athletes.push(athlete);
}
for (j=0;j < 2;j++) {
const nestedResult = {};
nestedResult.is_team = true;
if (athletes) {
nestedResult.athletes = athletes;
}
console.log('nestedResult:', nestedResult);
if (nestedResult) {
eventUnitResults.push(nestedResult);//TODO:
//eventUnitResults.push(JSON.stringify(nestedResult));//TODO:
}
}
console.log('eventUnitResults:', eventUnitResults);//<==== how can I get deeply nested values of athletes showing up properly here
if (eventUnitResults) {
result.event_unit_results = eventUnitResults;
}
console.log('result:', result)
TIA
如果记录对象,您可能希望将实际对象转换为字符串。
背景
如果将其与 java(或大多数语言)进行比较:
System.out.println(object);
打印您的 object.toString()
。除非你覆盖它,否则就是内存地址。
问题
在JavaScript中:
console.log(object);
[object, object]
会打印 [object, object]
因为它会打印你正在打印的内容。在这种情况下,它不知道您期望包含 JSON.
注意这并不适用于所有浏览器。例如Chrome,想帮你解决,交互打印JSON值;你可以折叠和展开它。
解决方案
此问题的解决方案是明确告诉控制台打印 json 字符串。您可以通过调用内置 json 对象的函数来对对象进行字符串化。
JSON.stringify(object);
{ "content": "json" }
为了完整性,通过将打印输出设置为 4 个空格缩进来打印对象:
JSON.stringify(object, null, 4);
打印:
{
"content": "json"
}