QT开发:QString to JSON 格式

本文介绍了一种使用Qt处理JSON格式数据的方法,通过在JSON字符串前添加特定标识来判断其格式,并详细展示了如何将Qt字符串类型转换为JSON以及从JSON读取数据进行业务处理的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSON 是一种特殊的字符串,存放有Key(关键字) 和Data(数据) 两部分,例如{"firstName":"John"}。由于JSON也是字符串,那么怎么判断字符串是JOSN格式呢? 现在并没有提供一种好的API来判断,所以博主采用了 在JSON字符串的前面添加"[JSON]" 来判断。

JSON 里面存放的数据是String类型的,采取方法是

    QString ---> String 存入JSON
    String ---> QString 返回
    在读取配置文件时候,必须要的操作
    QString --->String 转换为JSON
    String --->QString 做业务

   
bool COptionOperationPanel::qstrIsJson( const QString& qsParam )//用来判断是否为QStrings数据JSON格式
{
        QString strParam = qsParam.left(6);

        if( strParam == "[JSON]")
        {
            return true;
        }
        return false;
}

那么在项目中如何来使用他,吧需要的数据存放成JSON 格式呢?

    QString param() const
    {
        bson::bob builder; //创建存放
        QString qsParam;

        if (NULL != m_pOptionWidget)
        {
            qsParam += m_pOptionWidget->param();
            //XP::qsToS 是封装的QString--->string  读者请使用 qsParam.toStdString
           builder.append("m_OW", XP::qsToS(qsParam));
        }
        bson::bo obj = builder.obj();
        std::string value = "[JSON]"+obj.jsonString();
        
        //return  XP::sToQs(value)   XP::sToQs 是封装的string--->Qstring  读者请使用下面的
        return  QString::fromStdString(value);
 }

 使用JSON 字符串  拿到数据做业务

void setParam( const QString & qsParam )
{
        if (qstrIsJson(qsParam))
        {
            QString copyPatam = qsParam;
            copyPatam = copyPatam.remove(0,6);

            bson::bo objParser = bson::fromjson(XP::qsToS(copyPatam));
            if (NULL != m_pSkStockWidget)
            {
                if (objParser.hasField("m_SSW"))
                {
                    QString m_SSW = XP::sToQs(objParser["m_SSW"].String());
                    m_pSkStockWidget->setParam(m_SSW);
                }
                else
                {
                    m_pSkStockWidget->setParam(copyPatam);
                }
            }
       }
       else
     {
        return;
     }
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值