我试图解析Qt应用程序中的Json文件,但我被卡在了某个地方。 我有一个json文件,其中包含具有属性的数组。现在我有一个Category类,该类具有作为成员变量的项。现在,我想解析属性并创建一个唯一的类别对象,然后在该对象下添加属性。
我已经通过硬编码实现了这一点:
auto vehicle = std::make_unique<Item>("Coordinates");
vehicle->addEntry(std::make_unique<PropertyItem>("TODO", "x", PropertyType::FLOAT, false, *vehicle.get()));
categories.emplace_back(std::move(vehicle));
void Model::loadItemsFromJson() {
// Vehicle
QJsonObject obj = loadJsonFile(":/jsonfiles/vehicle.json");
QJsonArray properties = obj["properties"].toArray();
/// No idea here how to achive
}
我应该更改Json以获得更好的处理,还是可以轻松实现? 谢谢
--------------------------编辑-------------------- -
Now my json looks like this:
{
"General": [{
"Address": "TODO",
"Readonly": false
},
],
"Coordinates": [{
"Address": "TODO",
"Readonly": false
}
]
]
}
和我的实现:
QJsonObject obj = loadJsonFile(":/jsonfiles/vehicle.json");
QVariantMap map = obj.toVariantMap();
for (auto& m : map.keys()) {
// How to create objects??
}
答案 0 :(得分:0)
如果您像对象一样构造JSON,例如
sub(/VMF=/,"",INFO[8]);
然后,您只需解析每个{
"Categories" : {
"General" : [{
"Address" : "TODO",
"Name" : "Name",
"Type" : "string",
"ReadOnly" : "true"
}, ...],
"World Coordinates" : [...]
}
和CategoryItem
ScenarioPropertyItem