QJson-趟过的各种坑(先坑后用法)

 

不能处理大数据量,如果你的数据量有百兆左右(特别是有的小伙伴还喜欢json格式化输出的),不要用Qjson,否则会报错 DocumentTooLarge

解决办法:rapidjson(后面介绍)。

 

二、QJson的数据类型只有double,这会导致我们生成json数据的时候会出现精度不够的情况。

解决办法:1. 这你的类型可以是string,像这种"123.123456788",字符串当然不用担心精度问题。

2.如果要求必须是数值类型的话,对不起,请舍弃Qjson 转rapidjson(后面介绍)。

 

三、json格式化输出

解决办法: QByteArraydata = document.toJson(QJsonDocument::Compact);

QJsonDocument::Indented

{

 

"Array": [

 

true,

 

999,

 

"string"

 

],

 

"Key": "Value",

 

"null": null

 

}

QJsonDocument::Compact

{"Array":[true,999,"string"],"Key":"Value","null":null}

QJson使用

#include

#include

#include

 

1.构建json

QJsonObject json;

json.insert("Name", "Qt");

json.insert("From", 1991);

json.insert("Cross Platform", true);


QJsonDocument document;

document.setObject(json);

QByteArray byteArray = document.toJson(QJsonDocument::Compact);

2.解析json

QFile file(jsonFilePath);

if (!file.open(QIODevice::ReadOnly))

{

qDebug()<

rapidjson

rapidjson是腾讯的开源json解析框架,用c++实现。由于全部代码仅用header file实现,所以很容易集成到项目中。rapidjson的性能也非常出色。

 

各大json库性能测试: https://www.zhihu.com/question/23654513

官方教程: http://rapidjson.org/zh-cn/md_doc_tutorial_8zh-cn.html

 

你可能感兴趣的:(QT,json,QJson)