January 2016
Beginner
512 pages
12h 35m
English
Let's extend the PlayerInfoJSON class and equip it with a reverse conversion:
PlayerInfo PlayerInfoJSON::readPlayerInfo(const QByteArray &ba) const {
QJsonDocument doc = QJsonDocument::fromJson(ba);
if(doc.isEmpty() || !doc.isArray()) return PlayerInfo();
return readPlayerInfo(doc.array());
}First, we read the document and check whether it is valid and holds the expected array. Upon failure, an empty structure is returned; otherwise, readPlayerInfo is called and is given QJsonArray to work with:
PlayerInfo PlayerInfoJSON::readPlayerInfo(const QJsonArray &array) const {
PlayerInfo pinfo;
foreach(QJsonValue value, array)
pinfo.players << readPlayer(value.toObject());
return pinfo;
}Since the array is iterable, ...