0

我正在使用 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'的无效转换)

4

1 回答 1

0

我不知道你为什么要转换一个映射,它是一个“键值”对的数量到一个值数组中,但如果你愿意,语法将类似于

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

请注意,在遍历映射时,您按升序从一个键到另一个键,因此数组的第一个元素将具有最低键,反之亦然。

于 2012-10-08T06:06:35.463 回答