您的位置:首页 > Web前端 > JavaScript

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt json