类型判断:
QJsonValue v("1");QJsonValue v1(1);qDebug()<<v.isString();//trueqDebug()<<v.isBool();//falseqDebug()<<v.isDouble();//falseqDebug()<<v1.isString();//falseqDebug()<<v1.isBool();//falseqDebug()<<v1.isDouble();//true
isDouble()也可以用于判断整型。
强制转换:
背景:从服务器返回的json数据,可能是int或string类型。
图方便,写一个强制转换函数。
(本地只有int,string,bool类型)
不论json数据是什么类型,本地是什么类型,就强制转换成什么类型。
QString JsonValue_to_QString(QJsonValue value)
{//value要么是QString,要么是intif(value.isString())return value.toString();else if(value.isDouble())return QString::number(value.toInt());else return "";
}
int JsonValue_to_Int(QJsonValue value)
{//value要么是QString,要么是intif(value.isString())return value.toString().toInt();else if(value.isDouble())return value.toInt();else return 0;
}
QJsonValue v("1234");QJsonValue v1(3333);qDebug()<<JsonValue_to_QString(v);qDebug()<<JsonValue_to_QString(v1);qDebug()<<JsonValue_to_Int(v);qDebug()<<JsonValue_to_Int(v1);
"1234"
"3333"
1234
3333
QJsonValue v("0");QJsonValue v1(1);bool k;k=JsonValue_to_Int(v);qDebug()<<k;k=JsonValue_to_Int(v1);qDebug()<<k;
false
true