QJson QVariantMap to QByteArray



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

有没有比迭代 Map、将每个 QVariant 转换为一个字节并将其分配给字节数组更好的方法

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

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

我不知道

你为什么要将一个映射(一个"键值"对的数字)转换为一个值数组,但是如果你愿意,语法将是这样的

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

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

最新更新