qml добавить поток json в listmodel
Я хотел бы добавить ответ в формате JSON с веб-сервера в QML ListModel. В настоящее время я использую
eventModel.append(jsonObject)
это прекрасно работает, если ответ содержит только строки или числа, но не если в ответе есть массив. Я использую код здесь, чтобы получить объект 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 ответ
Решение
Это взято из одного из моих приложений, и это может быть иллюстративным примером для вашего случая.
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]}
);