QJson QVariantMap to QByteArray

Я использую QJson для анализа данных, возвращаемых в формате JSON. Один из возвращаемых элементов — это байтовый массив из 80 символов. Возвращение из QJson — это QVariantMap, который выглядит как массив длинных целых при просмотре в отладчике Qt Creator.

Есть ли лучший способ преобразовать QVariantMap в байтовый массив, чем итерация по карте, приведение каждого QVariant к байту и присвоение его байтовому массиву?

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

(Код выше для иллюстрации, я не уверен, что правильный синтаксис для преобразования целого числа в байт. Приведенный выше код приводит к «неправильному приведению типа« QVariant »к типу char»)

0

Решение

Я не знаю, почему вы захотите привести карту, представляющую собой число пар «ключ-значение», в массив значений, но если вы захотите, синтаксис будет выглядеть примерно так:

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

Обратите внимание, что во время итерации по карте вы переходите от ключа к ключу в порядке возрастания, поэтому первый элемент массива будет таким с самым низким ключом, и наоборот.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]