嵌套 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"
}