Qt 中使用到QJsonValue / QJsonObject 转QString时要注意了

先上示例代码, 以下代码将QJsonObject对象转换成QString并拼接成 key1=value1&key2=valu2的形式

// 假设存在QJsonObject实例qjsonobj
QString strVal = "";
foreach (QString key, qjsonobj.keys()) {
    qDebug()<

注意事项
可以注意到上述代码中转换时并没有统一使用到.toString()方法, 由于数值对象是没有该方法的。

当json对象中存在int,double型时,需要进行特殊处理, 否则无法正常拼接,导致参数丢失
此处的json对象是从js端传递过来的,故只处理了Double型而没有int型
json格式的QJsValue转QJsonObject 的方法是 qjson = jsValue.toVariant().toJsonObject();
 

最终:

    if (valueJson.contains("battery_power"))
    {
        QJsonValue value = valueJson.value("battery_power");
        if(value.isDouble())
        {
            battery_power = QString("%1").arg(value.toDouble());

        }else
        {
            battery_power = value.toString();
        }
        battery_power = value.toString();
        qDebug() << "电池电量: " << battery_power;
    }

你可能感兴趣的:(qt,QJsonValue,转QString)