我想要那样的格式
"attechent":[{
"name":xyz,
field: [
{ title: 'a' },
{ title: 'b' }
]
}
]
代码 - >>
var field=[]
var obj1={"title":"a"}
var obj2={"title":"b"}
field.push(obj1)
field.push(obj2)
console.log(field)
var outerfiled={}
outerfiled.field=field
out.name="xyz"
console.log(outerfiled)
var list=[outerfiled]
console.log(list)
问题就像我的代码是按照欲望输出格式工作但是在之后
输出为[ { field: [ [Object], [Object] ], name: 'xyz' } ]
答案 0 :(得分:1)
您看到的输出是打印时的标准节点输出和对象。它显示它有一个Object,但不会详细打印出来。
JSON.stringify
将允许您根据需要格式化对象。它需要三个参数 - 格式化对象,可选的替换函数和可选的缩进级别。请注意,不保证属性的顺序。
在您的情况下,您不需要使用replacer函数,因此将null作为第二个参数传递。所需的缩进级别为4个空格,因此您可以将数字4作为第三个参数传递。
var field=[]
var obj1={"title":"a"}
var obj2={"title":"b"}
field.push(obj1)
field.push(obj2)
var outerfiled={}
outerfiled.field=field
outerfiled.name="xyz"
var list=[outerfiled]
var result = {attechent: list}
// Extra args for JSON.stringify:
// no replacer function required - pass null, indent level of 4 spaces required
console.log(JSON.stringify(result, null, 4))
答案 1 :(得分:0)
您需要正确的名称变量。
outerfiled.name = "xyz";
// ^^^^^^^
以及后来对结果的赋值,例如
var result = { attechent: list };
var field = [];
var obj1 = { title: "a" };
var obj2 = { title: "b" };
field.push(obj1);
field.push(obj2);
var outerfiled = {};
outerfiled.field = field;
outerfiled.name = "xyz";
var list = [outerfiled];
var result = { attechent: list };
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 2 :(得分:0)
console.log
不会打印整个对象。如果要打印整个对象,可以使用util.inspect()。这是代码
var utl = require("util");
var field=[]
var obj1={"title":"a"}
var obj2={"title":"b"}
field.push(obj1)
field.push(obj2)
console.log(field)
var outerfiled={}
outerfiled.field=field
outerfiled.name="xyz"
console.log(outerfiled)
var list=[outerfiled]
console.log(utl.inspect(list, false, null))