javascript - javascript中的json格式
问题描述
我需要用 Firebase 信息组装一个 JSON 格式的字符串。我可以这样做,但是字符串结构出错了,我得到:
[
'7801',
{
keycode: '111111',
dataStatus: 'Test1'
},
'7802',
{
keycode: '222222',
dataStatus: 'Test2'
}
]
但它应该是:
{
'7801':
{
keycode: '111111',
dataStatus: 'Test1'
},
'7802':
{
keycode: '222222',
dataStatus: 'Test2'
}
}
我的代码:
const admin = require('firebase-admin');
const serviceAccount = require('./firestore/firestoreTeste.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
const db = admin.firestore();
let results = [];
let documents = db.collection('place2').get()
.then(snapshot => {
snapshot.forEach(doc => {
var namePlace;
namePlace = doc.id.toString();
let subCollectionDocs = db.collection('place2').doc(doc.id).collection("locals").get()
.then(snapshot => {
results = []
snapshot.forEach(doc => {
results.push(doc.id, doc.data());
})
console.log(results);
}).catch(err => {
console.log("Error subcolection", err);
})
});
}).catch(err => {
console.log("Error documents", err);
});
我是 JS 的初学者,我无法改变这种结构。
有谁知道我应该怎么做?
谢谢!
解决方案
声明results
为对象,这似乎是您真正想要做的:
let results = {};
然后,不要push()
将结果放入 Array 结构中,而是在 中创建一个键和一个关联的值results
:
results[doc.id] = doc.data();
进一步阅读:
推荐阅读
- android - 如何在 Android Studio 中创建自定义弹出窗口?
- python - .find() 方法的结果(整数值)是什么意思?
- javascript - 如果我这样做,为什么谷歌日历 api nodejs 示例不起作用?
- mongodb - 聚合非常慢的 Scala
- sql-server - SQL触发器插入或更新同一张表避免递归
- c++ - 在 C++ 中反转 std::string 如何与此构造函数一起使用?
- arrays - Discord.js - 创建一个数组来转储图像文件
- python - 使用 Python 进行高级 Google 搜索
- python - Python将函数应用于列表,将结果存储为列表
- google-analytics - 如何防止 joomla 加载谷歌分析脚本(ga.js)