Разбор 2D QVariantMap

Использование QJson для анализа этих данных:

"ShelveId": {
  "0": {
    "BeBoardId": {
      "0": {
        "connectionId": "board0", .... followed by more data

Я хотел бы пройти по этой таблице быстрее, чем это. Все карты QVariantMaps:

map_BeBoardId = map_ShelveId["0"].toMap();

map_BeBoardId = map_BeBoardId["BeBoardId"].toMap();

auto temp = map_BeBoardId["0"].toMap();
m_connectionId = temp["connectionId"].toString();

qDebug() << m_connectionId;

Который работает и правильно возвращает мне мой connectionId "board0".

Вместо этого я хотел бы сделать что-то вроде этого:

map_BeBoardId = map_ShelveId["0"].toMap();

map_BeBoardId = map_BeBoardId["BeBoardId", "0"].toMap();

m_connectionId = map_BeBoardId["connectionId"].toString();

qDebug() << m_connectionId;

Это возвращает мне пустой идентификатор соединения.

И нет, я не могу использовать здесь списки, так как иногда у нас может быть идентификатор полки «1» и «4» в зависимости от того, что подключено.


person fiz    schedule 16.09.2014    source источник


Ответы (1)


Для утомленного путешественника, после всевозможных попыток, вот что я придумал:

auto temp = map_BeBoardId.value("0").toMap().value("connectionId").toString();

Немного многословно, да, кто-нибудь еще придумает лучшее решение, а затем может опубликовать его.

person fiz    schedule 16.09.2014