给定一个具有多层存储信息(存储在元素中的元素数组)的 ListModel,有没有办法存储模型并在以后调用它?
我尝试将 ListModel 存储为 JSON 字符串,但它不跟踪子对象。例如,在下面的代码片段中,输出告诉我有一个“kids”对象,但不知道“kid1”和“kid2”。“store”对象也是如此,但不知道“duck1”和“duck2”。
import QtQuick 2.9
import QtQuick.Window 2.2
Window {
visible: true
width: 640
height: 480
ListModel {
id: listModel
ListElement {
name: "Parent"
kids: [
ListElement {kid: "kid1"},
ListElement {kid: "kid2"}
]
}
ListElement {
name: "store"
ducks: [
ListElement {duck: "duck1"},
ListElement {duck: "duck2"}
]
}
Component.onCompleted: {
var datamodel = []
for (var i = 0; i < this.count; ++i)
datamodel.push(this.get(i))
console.log(JSON.stringify(datamodel))
}
}
}
这是输出,它未能显示有关子对象的任何信息。我希望在“父”对象下有“kid1”和“kid2”。
[
{
"kids": {
"objectName": "",
"count": 2,
"dynamicRoles": false
},
"name": "Parent"
},
{
"name": "store",
"ducks": {
"objectName": "",
"count": 2,
"dynamicRoles": false
}
}
]
编辑:我希望输出更像这样:
[
{
"name": "Parent",
"kids": [
{
"kid": "kid1"
},
{
"kid": "kid2"
}
]
},
{
"name": "store",
"ducks": [
{
"duck": "duck1"
},
{
"duck": "duck2"
}
]
}
]