如何用JavaScript生成指定结构JSON 动态以订单号为键写入Firebase实时数据库
实现方案
核心是使用JavaScript的方括号属性访问语法实现动态键名,替换原来固定的booksArr硬编码键:
代码修改
把原来的硬编码键逻辑换成动态订单号作为键:
var books = {}; // 用方括号设置动态键,键名就是你的订单号变量 books[orderNumber] = [orderNumber]; do { // ... 你的图书数据获取逻辑 let book = { name: bookName, sku: sku, price: price, qty: qty, extPrice: extPrice } // 同样用方括号访问动态键对应的数组,推入新图书数据 books[orderNumber].push(book) // ... 其他逻辑 } while (exit == false);
最终生成结构示例
假设你的orderNumber值为9490455,最终生成的结构会完全符合你的需求:
Book: { "9490455": [ "9490455", { "name": "Baby's Very First Lift-the-Flap Peek-a-Boo At the Zoo (BD)", "sku": "52367", "price": "9.99", "qty": "1", "extPrice": "9.99" }, { "name": "Peek Inside the Farm (BD)", "sku": "34424", "price": "11.99", "qty": "1", "extPrice": "11.99" } ] }
注意事项
- 往Firebase Realtime Database写入时,注意订单号不要包含Firebase禁用的特殊字符:
. # $ [ ] /,如果有这类字符可以提前替换为下划线_避免报错。 - 后续读取对应订单的图书数据时,同样用方括号语法
books[目标订单号]就能直接拿到对应图书列表。
内容的提问来源于stack exchange,提问作者pricejt
相关产品推荐
相关产品推荐

