Javascript 打印嵌套的复杂对象

Javascript 打印嵌套的复杂对象,javascript,json,nested,Javascript,Json,Nested,我有东西。它们是嵌套的,我实际上不知道对象中包含哪些参数。 例如,它可以是 { "option1": "value1", "option2": "value2", "option3": { "suboption1": "subvalue1", "suboption2": { "subsuboption1": "subsubvalue1" } }, "option4": "value4" } 我需要打印此对象,如下所示: <span

我有东西。它们是嵌套的,我实际上不知道对象中包含哪些参数。 例如,它可以是

{
  "option1": "value1",
  "option2": "value2",
  "option3": {
    "suboption1": "subvalue1",
    "suboption2": {
       "subsuboption1": "subsubvalue1"
    }
  },
  "option4": "value4"
}
我需要打印此对象,如下所示:

<span class="depth-0"><b>option1</b>: value1</span>
<span class="depth-0"><b>option2</b>: value2</span>
<span class="depth-0"><b>option3</b>:</span>
<span class="depth-1"><b>suboption1</b>: subvalue1</span>
<span class="depth-1"><b>suboption2</b>:</span>
<span class="depth-2"><b>subsuboption1</b>: subsubvalue1</span>
<span class="depth-0"><b>option4</b>: value4</span>
选项1:value1
选项2:价值2
备选案文3:
子选项1:子值1
子选项2:
subsuboption1:subsubvalue1
选项4:价值4
这看起来是一个简单的任务,但我有一个关于深度缩进的大问题。也许有人也有类似的问题。 我在项目中使用javascript和lodash库。 我的模板中需要一些函数。

如何使用,根据需要提供
空间
参数
“-”
或选项卡:

console.log(JSON.stringify)({
“选项1”:“值1”,“选项2”:“值2”,
“选择3”:{
“子选项1”:“子值1”,
“子选项2”:{
“subsuboption1”:“subsubvalue1”
}
},
“选项4”:“值4”
},null,“--”)您可以尝试以下操作

var对象={
“选项1”:“值1”,
“选项2”:“值2”,
“选择3”:{
“子选项1”:“子值1”,
“子选项2”:{
“subsuboption3”:“subsubvalue3”
}
},
“选项4”:“值4”
};
功能油漆(obj,标高){
for(obj中的var键){
if(对象类型[键]=“对象”){
console.log(“”+key+’:“”);
油漆(obj[钥匙],等级+1);
}否则{
console.log(“”+key+':“”+obj[key]+“”);
}
}
}

绘制(对象,0).outerHTML
将元素更改为HTML字符串以进行显示。我更新了我的问题,现在您可以了解我为什么不能使用itI了。我尝试过使用它,并且知道我不能。我更新了一个问题,你可以看到为什么。@Anastasiia-我已经更新了答案。请检查。@Anastasiia-你试过了吗?此外,可以将console.log附加为html,以代替console.log