2013-07-16 3 views
0

Im использует qt 5.0 и поддерживает такие классы, как QJsonObject QJsonDocument и QJsonArray. В моей программе мне нужно сериализовать json-массив и преобразовать его в qstring/qbytearray, но я не нашел никаких методов сериализации или кодирования в этих классах. Есть ли способ, которым я могу сериализовать данные, используя включенный qt 5.0. ЛИЭС? Я нашел этот пример:Qt 5.0 Json encoding

QVariant id(1), name("John Doe"); 
QJsonObject json; 

json["Name"] = name.toString(); 
json.insert("id", id.toInt()); 

Но я не могу найти, как я могу сделать массив из него.

+0

Я никогда не использовал qt самостоятельно, поэтому я не отправляю это как ответ. Я быстро просмотрел документацию [http://qt-project.org/doc/qt-5.0/qtcore/qjsonobject.html](http://qt-project.org/doc/qt-5.0/qtcore/qjsonobject .html), и похоже, вы можете создать такой массив: 'json.insert (« id », QJsonArray());' класс QJsonValue имеет конструктор преобразования из QJsonArray. Конечно, вы хотите настроить QJsonArray вместо того, чтобы вставлять по умолчанию. –

+0

, но как преобразовать полный объект json со всеми ключами и массивами в строку? – SirLanceloaaat

+0

См. [Http://qt-project.org/doc/qt-5.0/qtcore/qjsondocument.html](http://qt-project.org/doc/qt-5.0/qtcore/qjsondocument.html). Похоже, вам нужно создать экземпляр QJsonDocument и получить его необработанные данные. 'QJsonDocument Doc; Doc.SetObject (JSON); int Размер; const char * RawJson = Doc.rawData (&Size); ' –

ответ

0

Вопрос закрыт. Используйте QJsonDocument :: toJson для получения данных из QJsonObject.