Я это Json, полученные из другого массива JSon:Как работать с JSON вложенными объектами
{"location":"La Gravière - Officiel","name":"Conférence de presse Animatou 2015 et soirée à la Gravière!","start_time":"2015-09-17T18:00:00+0200","timezone":"Europe/Zurich","id":"1632156500365990"}
{"location":"Université de Safrania","name":"Conférence \"Pokémon's Studies\"","start_time":"2015-10-31T20:30:00+0100","timezone":"Europe/Paris","id":"372932366218217"}
{"location":"Digital October Center","name":"BigData Conference","start_time":"2015-09-18T09:00:00+0300","timezone":"Europe/Moscow","id":"680056618762120"}
{"location":"Centro Cultural de Belém","name":"iMed Conference 7.0® – Lisbon 2015","start_time":"2015-09-17","timezone":"Europe/Lisbon","id":"700462560065856"} {"location":"Universiteit van Amsterdam/Oudemanhuispoort","name":"2015 Amsterdam Regional Conference","start_time":"2015-09-19","timezone":"Europe/Amsterdam","id":"1608898599391019"}
Это является результатом следующего кода:
string searchKeyword = "conference";
Facebook.JsonObject result = (Facebook.JsonObject) fbClient.Get("https://stackoverflow.com/search?q=" + searchKeyword + "&type=event");
JsonArray data = (JsonArray)result["data"];
for(int i = 0; i< data.Count; i++)
{
JsonObject l = (JsonObject) data.ElementAt(i);
Response.Write(l);
}
Когда я пытаюсь получить место каждая конференция в JSONObject, я получаю следующее сообщение об ошибке:
An exception of type 'System.Collections.Generic.KeyNotFoundException' occurred in mscorlib.dll but was not handled in user code
Я использую этот код, чтобы получить место:
for(int i = 0; i< data.Count; i++)
{
JsonObject l = (JsonObject) data.ElementAt(i);
Response.Write(l["location"]);
}
Как правильно работать с этими данными? Я попытался сначала десериализовать объект данных, но это дает ошибку.
Если я выполняю этот код:
string searchKeyword = "conference+reggae";
Facebook.JsonObject result = (Facebook.JsonObject) fbClient.Get("https://stackoverflow.com/search?q=" + searchKeyword + "&type=event");
JsonArray data = (JsonArray)result["data"];
Array d = data.ToArray();
Response.Write(result);
я получаю этот выход:
{"data":[{"end_time":"2015-09-26T06:00:00+0200","location":"Blue Note Düsseldorf","name":"DANCEHALL CONFERENCE 2 YEARS ANNIVERSARY/EARDRUM SOUND & CHANTA CREW/Dancehall, Mashup, Reggae, HipHop","start_time":"2015-09-25T23:00:00+0200","timezone":"Europe/Berlin","id":"1001780686562929"},{"location":"Blue Note Düsseldorf","name":"DANCEHALL CONFERENCE lgs. EARDRUM SOUND/Dancehall, Mashup, Reggae, HipHop","start_time":"2015-10-23T23:00:00+0200","timezone":"Europe/Berlin","id":"1639387246339755"}],"paging":{"cursors":{"before":"MAZDZD","after":"MQZDZD"}}}
Как бы продолжить, чтобы получить каждое место в каждой записи?
На данный момент я решил это, используя предложение try-catch вокруг response.write, похоже, что полученный JSON не был согласован.
Код:
for (int i = 0; i < data.Count; i++)
{
JsonObject l = (JsonObject)data.ElementAt(i);
try
{
Response.Write(l["location"]);
}
catch (Exception e)
{
}
}
Я не уверен, почему вы получаете эту ошибку, но это недействительно json, ее не массив –
Я отредактировал вопрос с дополнительной информацией (переменный дамп «результата») –