arrays - svelte - 使用带有 Each 函数的嵌套 json 数组
问题描述
我正在使用cordova-sqlite-porter将 SQLite 表导出到 JSON,然后使用使用 svelte 导出的 JSON。
我导出 json 的代码是:
let myDB = '';
let vetdrugs = [];
myDB = window.sqlitePlugin.openDatabase({ name: "vetcalculators.db", iosDatabaseLocation: "Documents" });
var successFn = function(json, count){
vetdrugs = JSON.stringify(json);
};
cordova.plugins.sqlitePorter.exportDbToJson(myDB, {
successFn: successFn,
dataOnly:true,
tables:['vetADrugs']
});
生成的 JSON 是:
{
"data":{
"inserts":{
"vetADrugs":[
{
"drugradio":"single",
"druglabel":"ml",
"conc3":null,
"Id":2,
"dose":10,
"conc1":null,
"maximum":null,
"desc":"",
"title":"Test0",
"notes":"",
"minimum":null,
"conc":100,
"drugconc":"mg/ml",
"conc2":null
},
{
"drugradio":"single",
"druglabel":"ml",
"conc3":null,
"Id":3,
"dose":10,
"conc1":null,
"maximum":4,
"desc":"",
"title":"Test1",
"notes":"",
"minimum":2,
"conc":100,
"drugconc":"mg/ml",
"conc2":null
},
{
"drugradio":"single",
"druglabel":"ml",
"conc3":null,
"Id":4,
"dose":10,
"conc1":null,
"maximum":4,
"desc":"",
"title":"Test2",
"notes":"",
"minimum":2,
"conc":100,
"drugconc":"mg/ml",
"conc2":null
},
{
"drugradio":"single",
"druglabel":"ml",
"conc3":null,
"Id":5,
"dose":10,
"conc1":null,
"maximum":4,
"desc":"",
"title":"Test3",
"notes":"",
"minimum":2,
"conc":100,
"drugconc":"mg/ml",
"conc2":null
}
]
}
}
}
不幸的是,JSON 被导出为:
{
"data":{
"inserts":{
"vetADrugs":[]...
而且我无法将其导出为:
{
"vetADrugs":[]...
通常,在 svelte 中,我会使用这样的 each 函数:
{#each vetADrugs as drugs}
{drugs.title}
{/each}
但我不确定如何将 JSON 的“数据”和“插入”部分合并到每个函数中。任何帮助,将不胜感激!
附录:我确实尝试了以下但没有运气:
{#each vetdrugs.data.inserts.vetADrugs as drug}
<p>
{drug.title}
</p>
{/each}
解决方案
您可以在每个块中使用点表示法。
{#each data.inserts.vetADrugs as drug}
<p>
{drug.title}
</p>
{/each}
推荐阅读
- typescript - 按顺序在可观察对象中执行
- python - Pandas 中的 .dropna() 问题
- ruby-on-rails - 在不知道文件名的情况下在 rails 公共目录中派生文件的自动化方法
- c# - 如何在 Web 浏览器控件中单击单独的网页元素
- mysql - 如何为 Spring 和 MySql 设置 Kubernetes
- postgresql - 将 postgres 分区添加到现有表
- ffmpeg - 使用 NVENC 的 FFmpeg GPU 10 位 HEVC 编码
- javascript - 当用户错误地将完整的电子邮件地址包含为用户名时,想要从输入中删除“@email.com”
- azure - 使用用户名和密码写入 Azure Blob
- java - 无法使用 MappedByteBuffer 读取块中的文件