mirror of
https://github.com/lubosz/overte.git
synced 2025-04-15 19:47:38 +02:00
Starting to work on JSON reading.
This commit is contained in:
parent
3ec127afde
commit
24ec441df7
2 changed files with 49 additions and 4 deletions
|
@ -1877,6 +1877,49 @@ QJsonDocument JSONWriter::getDocument() const {
|
|||
return QJsonDocument(top);
|
||||
}
|
||||
|
||||
JSONReader::JSONReader(const QJsonDocument& document) {
|
||||
QJsonObject top = document.object();
|
||||
QJsonArray types = top.value("types").toArray();
|
||||
for (int i = types.size() - 1; i >= 0; i--) {
|
||||
QJsonObject type = types.at(i).toObject();
|
||||
QString name = type.value("name").toString();
|
||||
QString category = type.value("category").toString();
|
||||
if (category == "ENUM") {
|
||||
|
||||
} else if (category == "STREAMABLE") {
|
||||
|
||||
} else if (category == "LIST") {
|
||||
|
||||
} else if (category == "SET") {
|
||||
|
||||
} else if (category == "MAP") {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
QJsonArray classes = top.value("classes").toArray();
|
||||
for (int i = classes.size() - 1; i >= 0; i--) {
|
||||
QJsonObject clazz = classes.at(i).toObject();
|
||||
QString name = clazz.value("name").toString();
|
||||
QJsonArray properties = clazz.value("properties").toArray();
|
||||
foreach (const QJsonValue& property, properties) {
|
||||
QJsonObject object = property.toObject();
|
||||
object.value("type");
|
||||
object.value("name");
|
||||
}
|
||||
}
|
||||
|
||||
QJsonArray objects = top.value("objects").toArray();
|
||||
for (int i = objects.size() - 1; i >= 0; i--) {
|
||||
QJsonObject object = objects.at(i).toObject();
|
||||
int id = object.value("id").toInt();
|
||||
int originID = object.value("originID").toInt();
|
||||
QJsonObject data = object.value("data").toObject();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ObjectStreamer::ObjectStreamer(const QMetaObject* metaObject) :
|
||||
_metaObject(metaObject) {
|
||||
}
|
||||
|
|
|
@ -866,14 +866,16 @@ template<class K, class V> inline QJsonValue JSONWriter::getData(const QHash<K,
|
|||
class JSONReader {
|
||||
public:
|
||||
|
||||
TypeStreamerPointer getTypeStreamer(const QByteArray& name) const { return _typeStreamers.value(name); }
|
||||
ObjectStreamerPointer getObjectStreamer(const QByteArray& name) const { return _objectStreamers.value(name); }
|
||||
JSONReader(const QJsonDocument& document);
|
||||
|
||||
TypeStreamerPointer getTypeStreamer(const QString& name) const { return _typeStreamers.value(name); }
|
||||
ObjectStreamerPointer getObjectStreamer(const QString& name) const { return _objectStreamers.value(name); }
|
||||
SharedObjectPointer getSharedObject(int id) const { return _sharedObjects.value(id); }
|
||||
|
||||
private:
|
||||
|
||||
QHash<QByteArray, TypeStreamerPointer> _typeStreamers;
|
||||
QHash<QByteArray, ObjectStreamerPointer> _objectStreamers;
|
||||
QHash<QString, TypeStreamerPointer> _typeStreamers;
|
||||
QHash<QString, ObjectStreamerPointer> _objectStreamers;
|
||||
QHash<int, SharedObjectPointer> _sharedObjects;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue