JSON三兄弟老大哥QJsonValue
QVariant QJsonValue::toVariant() const
QJsonObject QJsonValue::toObject() const QJsonValue::QJsonValue(const QJsonObject &o) QJsonArray QJsonValue::toArray() const 二哥QJsonObject
{ {"key1", 1}, {"key2", 6.6}, {"key3", "Hello world"}, {"array", QJsonArray({1, 2, 3})} };
jsonObject["key1"] = 1; jsonObject["key2"] = 6.6; jsonObject.insert("key3", "Hello world"); jsonObject["array"] = QJsonArray({1, 2, 3});
QVariantMap QJsonObject::toVariantMap() const
三弟QJsonArray
jsonArray.append(1); jsonArray.append(6.6); jsonArray.insert(2, "Hello world");
QVariantList QJsonArray::toVariantList() const JSON管家一天,三兄弟玩得甚欢,管家有些烦恼,三兄弟年龄不小了,还整天捣蛋,苦不堪言,是时候帮它们解决人生大事了,让他们得老婆来管这三兄弟。管家暗暗窃喜。老夫赶紧将他们的资料(数据)转换为字符串发给对面Web端的大户人家先。 管家拿出QJsonDocument工具转换他们三兄弟的资料。 QJsonDocument(const QJsonObject &object) QJsonDocument(const QJsonArray &array) QByteArray toJson() const 分别将QJsonObject与QJsonArray转换为QByteArray。 QByteArray byteArray1 = QJsonDocument(jsonObject).toJson(); QByteArray byteArray2 = QJsonDocument(jsonArray).toJson(); 管家看了看,拿到资料了,不知道资料是否正确,还是要确保一下就使用 isNull 接口验证:boolQJsonDocument::isNull() const// 如果返回为true则JSON数据解析不正确或为空。 焦急的管家等了几天,对面Web端怎么会没有答复的。正在焦虑走来走去,是不是资料不够好?还是发送出去格式不好看,看来要给他们弄弄格式,于是就找来了生成字符串的 toJson 来解决。toJson 面对焦急得管家自然也不敢怠慢,立马给出解决方案。QByteArray toJson(QJsonDocument::JsonFormat format) const
"key1": 1, "key2": 6.6 }
管家修改了一下格式发出去,很快就收到对面妹子发送过来资料数据了,要快快解析看看。 管家先将QByteArray数据转换为QJsonDocument对象,然后再转换为QJsonObject或QJsonArray即可。 QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error = nullptr) 管家看了看,老夫还是有点效果的。 QJsonDocument jsonDoc = QJsonDocument::fromJson("{\"address\":\"村口客栈见\",\"note\":\"带点吃的\"}"); JSON背锅者管家又接收到了一封信,可是解析不出来,正在头皮发麻着思考到底是那一步出错了。 突然跳出一个人 QJsonParseError 说:管家这锅我来背,我帮你找出问题,但我又一个小小得要求,就是你也给我介绍介绍。管家无奈只好答应。 QJsonParseError jsonError; QJsonDocument jsonDoc = QJsonDocument::fromJson("{\"note\":\"二哥有点帅\"}", &jsonError); qDebug()<<jsonError.errorString(); 小子你可以啊,原来 fromJson 还有这操作。后续 管家将此事告诉他们三兄弟,如获珍宝一样。老大哥还说,看来我单身30年就要终结了。二哥则表示要在妹子面前露一手,三弟也不甘示弱赶紧去问老爹准备点钱。 后续他们三兄弟结局如何?,是否抱得美人归?请关注下篇 Qt之JSON教程-实战篇 。---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:Qt君,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |