我正在使用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() );
请注意,在遍历映射时,您将按升序从键到键,因此数组的第一个元素将是具有最低键的元素,反之亦然。