qjson解析和构建
2016-04-19 19:30
549 查看
QJsonArray npcArray = json["npcs"].toArray();
for (int npcIndex = 0; npcIndex < npcArray.size(); ++npcIndex) {
QJsonObject npcObject = npcArray[npcIndex].toObject();
Character npc;
npc.read(npcObject);
mNpcs.append(npc);
}
}
void Level::write(QJsonObject &json) const
{
QJsonArray npcArray;
foreach (const Character npc, mNpcs) {
QJsonObject npcObject;
npc.write(npcObject);
npcArray.append(npcObject);
}
json["npcs"] = npcArray;
}
解析的主要步骤如下:
1,将来源数据转化为JsonDocument。可用它的构造函数,或setArray、setObject,或它的静态成员函数。
QByteArray b= file->readAll();
QJsonParseError *error=new QJsonParseError;
QJsonDocument doc=QJsonDocument::fromJson(b,error);
if(error->error==QJsonParseError::NoError)
{
if(doc.isObject())
{
QJsonObject obj=doc.object();//取得最外层这个大对象
//这里放代码,对json数据进行取值
}
}else
{
qDebug()<<error->errorString();
}
2,可用下列四函数判断它的最外层数据类型(一般是个对象):
bool isArray() const
bool isEmpty() const
bool isNull() const
bool isObject() const
3,知道类型后,用以下函数将它转化为json对象或json数组或Map
QJsonArray array() const
QJsonObject object() const
QVariant toVariant() const
for (int npcIndex = 0; npcIndex < npcArray.size(); ++npcIndex) {
QJsonObject npcObject = npcArray[npcIndex].toObject();
Character npc;
npc.read(npcObject);
mNpcs.append(npc);
}
}
void Level::write(QJsonObject &json) const
{
QJsonArray npcArray;
foreach (const Character npc, mNpcs) {
QJsonObject npcObject;
npc.write(npcObject);
npcArray.append(npcObject);
}
json["npcs"] = npcArray;
}
解析的主要步骤如下:
1,将来源数据转化为JsonDocument。可用它的构造函数,或setArray、setObject,或它的静态成员函数。
QByteArray b= file->readAll();
QJsonParseError *error=new QJsonParseError;
QJsonDocument doc=QJsonDocument::fromJson(b,error);
if(error->error==QJsonParseError::NoError)
{
if(doc.isObject())
{
QJsonObject obj=doc.object();//取得最外层这个大对象
//这里放代码,对json数据进行取值
}
}else
{
qDebug()<<error->errorString();
}
2,可用下列四函数判断它的最外层数据类型(一般是个对象):
bool isArray() const
bool isEmpty() const
bool isNull() const
bool isObject() const
3,知道类型后,用以下函数将它转化为json对象或json数组或Map
QJsonArray array() const
QJsonObject object() const
QVariant toVariant() const
相关文章推荐
- 使用 Python 处理 JSON 格式的数据
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- XML 与 JSON 优劣对比
- Qt 5.6更新至RC版,最终版本近在咫尺
- VBA将excel数据表生成JSON文件
- newtonsoft.json解析天气数据出错解决方法
- vbs 解析json jsonp的方法
- Ruby和Ruby on Rails中解析JSON格式数据的实例教程
- Extjs4如何处理后台json数据中日期和时间
- C#实现将类的内容写成JSON格式字符串的方法
- JQuery ajax返回JSON时的处理方式 (三种方式)
- jquery JSON的解析方式示例介绍
- c#版json数据解析示例分享
- ASP JSON类文件的使用方法
- C#实现对Json字符串处理实例
- C#实现Json转Unicode的方法
- php解析json数据实例
- PHP中JSON的应用技巧
- PHP6 先修班 JSON实例代码