qml将json流附加到listmodel

时间:2016-11-11 21:59:22

标签: json qml listmodel

我想将JSON中的答案从Web服务器附加到QML ListModel。目前我正在使用

eventModel.append(jsonObject)
如果答案只包含字符串或数字,那么

可以正常工作,但如果答案中有数组则不行。我正在使用here中的代码来获取JSON对象。

这是答案的一行:

{"i":3814086,"t":"d","s":1479970800,"sw":"Do","sds":"24.11.16","ss":"08:00","e":1479996000,"eds":"24.11.16","es":"15:00","f":false,"z":[{"i":223500,"d":true,"r":"","h":null,"hs":null,"hss":"","he":null,"hes":""}]}

z旁边的一切都很好。如果我从列表模型中读取条目,我会得到:

{"objectName":"","i":3814086,"t":"d","s":1479970800,"sw":"Do","sds":"24.11.16","ss":"08:00","e":1479996000,"eds":"24.11.16","es":"15:00","f":false,"z":{"objectName":"","count":1,"dynamicRoles":false}}

看起来z中的所有内容都丢失了。我已经尝试过再次添加

for(var i in jsonObject){
    eventModel.append(jsonObject[i])
    eventModel.set(i, {"z":jsonObject[i]["z"]})
}

但结果是一样的。

这样的事情是不可能的,还是我在将JSON对象附加到列表模型时做错了什么?

1 个答案:

答案 0 :(得分:0)

这取自我的一个应用程序,它可以作为您案例的说明性示例。

ListModel {
        id:agenciesModel

        ListElement {
            name: "401"
            eventListDates :[
                ListElement{
                    date:"jj/mm/aaaa"
                }

            ]
        }

        ListElement {
            name: "402"
            eventListDates :[
                ListElement{
                    date:"jj/mm/aaaa"
                }

            ]


        }

        ListElement {
            name: "403"  
            eventListDates :[
                ListElement{
                    date:"jj/mm/aaaa"
                }

            ]



        }
}
var listObjJS = [{"date":"10/10/2019"},
                 {"date":"10/11/2011"},
                 {"date":"10/11/2011"},
                 {"date":"10/11/2011"}
                ];

for(var j=0;j<listObjJS.length;j++ )
   agenciesModel.get(i).eventListDates.append(
        { date : listObjJS[j].toString().split(":")[1]}
   );