无法显示深层嵌套的JSON对象以显示。已经查看了各种stackoverflow帖子。感谢对这个新手问题的任何帮助。我想让它在运动员阵列中显示运动员JSONObject的细节。 它显示为[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
答案 0 :(得分:1)
如果您记录对象,则可能需要将实际对象转换为字符串。
如果将其与java(或大多数语言)进行比较:
System.out.println(object);
打印您的object.toString()
。除非你覆盖它,否则就是内存地址。
在JavaScript中:
console.log(object);
[object, object]
会打印[object, object]
,因为它会打印您正在打印的内容。在这种情况下,它不知道您期望包含JSON的String。
注意这不适用于所有浏览器。例如,Chrome希望帮助您以交互方式打印JSON值;你可以崩溃并解开它。
此问题的解决方案是明确告诉控制台打印json字符串。您可以通过调用内置json对象的函数来对对象进行字符串化来完成此操作。
JSON.stringify(object);
{“content”:“json”}
为完整起见,通过将打印输出设置为4个空格缩进来打印对象:
JSON.stringify(object, null, 4);
打印:
{
"content": "json"
}