Javascript 打印嵌套JSON对象时不显示该对象

Javascript 打印嵌套JSON对象时不显示该对象,javascript,json,nest-nested-object,Javascript,Json,Nest Nested Object,无法显示深度嵌套的JSON对象。为此,我们一直在查看各种stackoverflow帖子。感谢您对这个新手问题的帮助。我希望它显示运动员数组中运动员JSONObject的详细信息。 它显示为[对象] eventUnitResults: [ { is_team: true, athletes: [ [Object], [Object] ] }, { is_team: true, athletes: [ [Object], [Object] ] } ] const result={} 让eve

无法显示深度嵌套的JSON对象。为此,我们一直在查看各种stackoverflow帖子。感谢您对这个新手问题的帮助。我希望它显示运动员数组中运动员JSONObject的详细信息。 它显示为[对象]

eventUnitResults: [ { is_team: true, athletes: [ [Object], [Object] ] },
  { is_team: true, athletes: [ [Object], [Object] ] } ]
const result={}
让eventUnitResults=[];
让运动员=[];
对于(i=0;i<2;i++){
康斯特运动员={};
atternate.atternate_name='Ram'+i;
运动员。运动员性别='M'
运动员。推(运动员);
}
对于(j=0;j<2;j++){
常量nestedResult={};
nestedResult.is_team=true;
国际单项体育联合会(运动员){
nestedResult.运动员=运动员;
}
log('nestedResult:',nestedResult);
if(nestedResult){
eventUnitResults.push(nestedResult);//TODO:
//eventUnitResults.push(JSON.stringify(nestedResult));//TODO:
}
}

log('eventUnitResults:',eventUnitResults)// 如果记录对象,可能需要将实际对象转换为字符串

背景 如果将其与java(或大多数语言)进行比较:

打印
对象。toString()
。除非重写它,否则这就是内存地址

问题 在JavaScript中:

console.log(object);
[对象,对象]

将打印
[对象,对象]
,因为它打印您正在打印的内容。在本例中,它不知道您期望一个包含JSON的字符串

注意这并不适用于所有浏览器。例如,Chrome希望帮助您以交互方式输出JSON值;你可以把它折叠和拆开

解决方案 这个问题的解决方案是显式地告诉控制台打印json字符串。可以通过调用内置json对象的函数对对象进行字符串化来实现这一点

JSON.stringify(object);
{“内容”:“json”}


为完整起见,请通过将打印输出设置为4个空格缩进来漂亮地打印对象:

JSON.stringify(object, null, 4);
印刷品:

{
    "content": "json"
}

原始JSON看起来像什么:提示,在解析itJSON之前显示字符串JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么就不是JSON。“它显示为[Object]”您可能是指
[Object Object]
。这意味着您正在将对象转换为字符串(例如,通过
document.write
,或分配给
innerHTML
,等等)。您不是打印JSON,而是打印一些浏览器显示为JSON的实际对象。尝试
JSON.stringify(eventUnitResults)旁注:你的代码片段容易受到攻击:一定要声明你的变量(如
i
j
)。使用下划线js来深入挑选数据。请参阅+1&非常感谢您提供关于JSON.stringify的详细信息,但Randy对我遇到的问题给出了正确的答案。@Vijay就是我,详细说明了我的评论,因为这样您就可以通过接受我的答案来结束问题;)
{
    "content": "json"
}