1

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;

これにより、空の接続 ID が返されます。

いいえ、ここでリストを使用することはできません。接続されているものによっては、シェルブ ID が「1」と「4」の場合があるためです。

4

1 に答える 1

0

疲れた旅行者のために、あらゆる種類の試みの後、これが私が思いついたものです:

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

少し冗長です。はい、他の誰かがより良い解決策を考え出し、それを投稿できます。

于 2014-09-16T11:49:53.447 に答える