QJson QVariantMap到QByteArray

时间:2012-10-08 05:57:27

标签: c++ qt qjson

我正在使用QJson来解析以json格式返回的数据。其中一个返回的项是80个字符的字节数组。 QJson的返回是一个QVariantMap,当在Qt Creator调试器中查看时,它看起来是一个长整数数组。

有没有更好的方法将QVariantMap转换为Byte数组,而不是迭代Map,将每个QVariant转换为一个字节并将其分配给字节数组?

QByteArray byteArray[60];
QVariantMap returnedMap;
for (int n=0; n< returnedMap.count(); ++n){
  byteArray[n] = (char)returnedMap[n];
}

(上面的代码是为了说明,我不确定将整数转换为字节的正确语法是什么。上面的代码导致'从类型'QVariant'无效转换为'char'类型

1 个答案:

答案 0 :(得分:0)

我不知道你为什么要把一个地图,这是一个“键值”对的数字组成一个值数组,但如果你愿意,语法将是像

QByteArray arr;
QVariantMap map;
foreach( QVariant tmp, map )
    arr.append( tmp.toChar() );

请注意,在遍历地图时,您需要按键升序键,因此数组的第一个元素将使用最低键,反之亦然。