Вот пример канала, который я хотел бы проанализировать:
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);
`
Но по какой-то причине [] fix также обрезает данные, которые я генерирую, если я распечатываю данные без удаления [], я вижу всех пользователей, но в этом случае я не могу извлечь temp = value2 ["yt $ username" ] [ "уг $ дисплей"];