解析したいフィードの例を次に示します: https ://gdata.youtube.com/feeds/api/users/aniBOOM/subscriptions?v = 2&alt = json
http://json.parser.online.fr/で確認して、内容を確認できます。
YouTubeが提供するデータフィードの解析中に小さな問題が発生しました。最初の問題は、YouTubeがフィードフィールド内にラップされたデータを提供する方法でした。そのため、元のjsonファイルから直接ユーザー名を解析できなかったため、最初の入力フィールドを解析して、そこから新しいJsonデータを生成する必要がありました。
とにかく問題は、何らかの理由で最初のユーザー名しか含まれていないことです。オンラインパーサーでそのフィードをチェックすると、エントリにすべてのユーザー名が含まれているはずなので、理由はわかりません。
`
data = value["feed"]["entry"];
Json::StyledWriter writer;
std::string outputConfig = writer.write( data );
//This removes [ at the beginning of entry and also last ] so we can treat it as a Json data
size_t found;
found=outputConfig.find_first_of("[");
int sSize = outputConfig.size();
outputConfig.erase(0,1);
outputConfig.erase((sSize-1),sSize);
reader.parse(outputConfig, value2, false);
cout << value2 << endl;
Json::Value temp;
temp = value2["yt$username"]["yt$display"];
cout << temp << endl;
std::string username = writer.write( temp );
int sSize2 = username.size();
username.erase(0,1);
username.erase((sSize2-3),sSize2);
`しかし、何らかの理由で[]修正により、生成しているデータもカットされます。[]を削除せずにデータを印刷すると、すべてのユーザーが表示されますが、その場合、temp = value2 [" yt$usernameを抽出できません。 "] [" yt $ display "];