Javascript 如何给JSON字典一个主键,而不将其实现到循环中?
我正在将一些代码从python翻译成Javascript(我对JS缺乏经验),作为其中的一部分,我需要编写一个JSON,目前在用JS编写时看起来是这样的(只是一个简单的示例): 但是我需要它看起来像这样:Javascript 如何给JSON字典一个主键,而不将其实现到循环中?,javascript,json,Javascript,Json,我正在将一些代码从python翻译成Javascript(我对JS缺乏经验),作为其中的一部分,我需要编写一个JSON,目前在用JS编写时看起来是这样的(只是一个简单的示例): 但是我需要它看起来像这样: { "mydata": [ { "Num": "00000", "Status": 1, }, { "Num": "00001", "Stat
{
"mydata": [
{
"Num": "00000",
"Status": 1,
},
{
"Num": "00001",
"Status": 0,
},
]
}
我如何调整我的代码,为整个JSON生成一个主键,以下是我到目前为止得到的:
var jsondata = []
for (result in results) {
jsondata.push({
'Num' : idnum,
'Status': results[result].StatusID,
})
}
let data = JSON.stringify(jsondata, null, 2)
fs.writeFileSync('testingjson.json', data)
这里的代码位于for循环中,因此我不能只在push
中写入键,它将为循环的每次迭代生成mydata
键
我需要知道如何预先定义
mydata
,有人有好的方法吗?只需将mydata
定义为数组,然后在最后创建一个对象,其中mydata
是关键之一:
const mydata = []
for (const result in results) {
mydata.push({
'Num' : idnum,
'Status': results[result].StatusID,
});
}
const json = JSON.stringify({ mydata }, null, 2);
如果要使用不同的键名,请在串接时更改它,例如:
const json = JSON.stringify({ someKeyName: mydata }, null, 2);
如果results
是一个对象,则可以使用object.values
和map
使代码更简洁:
const Num = idnum;
const mydata = Object.values(results)
.map((item => ({ Num, Status: item.StatusID }));
const json = JSON.stringify({ mydata }, null, 2);
fs.writeFileSync('testingjson.json', data)
只需将
mydata
定义为一个数组,然后在最后创建一个对象,其中mydata
是关键之一:
const mydata = []
for (const result in results) {
mydata.push({
'Num' : idnum,
'Status': results[result].StatusID,
});
}
const json = JSON.stringify({ mydata }, null, 2);
如果要使用不同的键名,请在串接时更改它,例如:
const json = JSON.stringify({ someKeyName: mydata }, null, 2);
如果results
是一个对象,则可以使用object.values
和map
使代码更简洁:
const Num = idnum;
const mydata = Object.values(results)
.map((item => ({ Num, Status: item.StatusID }));
const json = JSON.stringify({ mydata }, null, 2);
fs.writeFileSync('testingjson.json', data)
results
是数组还是对象?results是我从SQL数据库查询的对象是results
数组还是对象?results是我从SQL数据库查询的对象谢谢,这非常有效。当它允许我欺骗你时,我会标记为正确,这非常有效。如果允许,我将标记为正确