From cf478dcb4337e61c76b6d5d39d39af251d46fed2 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Tue, 16 May 2017 13:41:39 -0500 Subject: [PATCH] Fix JSON array read --- src/nostalgia/studio/lib/json_read.hpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/nostalgia/studio/lib/json_read.hpp b/src/nostalgia/studio/lib/json_read.hpp index 94f23e6c..c6301184 100644 --- a/src/nostalgia/studio/lib/json_read.hpp +++ b/src/nostalgia/studio/lib/json_read.hpp @@ -50,6 +50,9 @@ class JsonReader { ox::Error op(QJsonValueRef src, QString *dest); + template + ox::Error op(QJsonValueRef src, T *dest); + }; template @@ -65,11 +68,18 @@ ox::Error JsonReader::op(QString fieldName, QVector *dest) { auto a = m_src[fieldName].toArray(); dest->resize(a.size()); for (int i = 0; i < dest->size(); i++) { - err |= op(a[i], &dest->at(i)); + err |= op(a[i], &(*dest)[i]); } return err; }; +template +ox::Error JsonReader::op(QJsonValueRef src, T *dest) { + auto obj = src.toObject(); + auto reader = JsonReader(obj); + return ioOp(&reader, dest); +} + template int readJson(QString json, T *dest) { auto obj = QJsonDocument::fromJson(json.toUtf8()).object();