2

RapidJSON を使用して JSON データを解析していますが、次のメンバーをループする方法がわかりません。

{

"members":{
    "0":{
        "template":"this is member 1"
    },
    "1":{
        "template":"this is member 2"
    }
}
}

ループ インデックス (i) を文字列に変換してループ内で次のことを試しました e_doc["members"][iString]["template"].GetString() が、文字列として認識されません。

次のように機能します。

printf("%s", e_doc["members"]["0"]["template"].GetString());
printf("%s", e_doc["members"]["1"]["template"].GetString());
4

1 に答える 1

7

配列ではなくオブジェクトを反復処理しているため、小さな問題が発生する可能性があります。ただし、最終的にはコードは似ています。

const rapidjson::Value& membersObject = e_doc["members"];
for(rapidjson::Value::ConstMemberIterator it=membersObject.MemberBegin(); it != membersObject.MemberEnd(); it++) {
   std::cout << it->value["template"].GetString();
}
于 2013-10-28T10:12:22.290 に答える