Im борется с объектом json.Проблемы с итерацией в объекте json
Я создаю объект (RO) со следующим кодом и работает нормально.
string reply = @"" + client.UploadString(url, "POST", LS_json);
RootObject RO = new RootObject();
RO = JsonConvert.DeserializeObject<RootObject>(reply);
RO теперь содержит все данные, которые я получил через поиск json.
Теперь, когда перебор объекта в цикле, перебирать один больше, чем (RO) содержит:
cnt_V = 0;
foreach (object obj_attributtertype in RO.hits.hits[0]._source.Biz.Rel[cnt_I].org[cnt_III].mem[cnt_IV].attributter[cnt_V].type)
{
if (Convert.ToString(RO.hits.hits[0]._source.Biz.Rel[cnt_I].mem[cnt_III].xsData[cnt_IV].attributes[cnt_V].type) == "KEY_VALUES")
{
LS_ande = "" + Convert.ToString(RO.hits.hits[0]._source.Biz.Rel[cnt_I].mem[cnt_III].xsData[cnt_IV].attributes[cnt_V].values[0].value);
}
cnt_V++;
}
Дела в том, что, когда cnt_V == 4 и «точка» к последней записи атрибутов [cnt_V] то LS_ande заполняется как предполагается (== "KEY_VALUES").
Но тогда foreach снова итерации (cnt_V == 5), здесь нет проблем, но когда ему назначается LS_ande, тогда он сбрасывает (из cource, потому что нет записи с данными для cnt_V == 5).
Я не понимаю, что случилось. Пожалуйста, будьте осторожны со мной и не стесняйтесь спрашивать дополнительную информацию. Спасибо заранее.
Итерация через длинный путь, как RO.hits.hits [0] ._ source.Vrvirksomhed.deltagerRelation [cnt_I] .organisationer [cnt_III] [.medlemsData cnt_IV] .attributter [cnt_V] .type вызывает ошибки, если один из средних объектов имеет значение null. Вы должны проверить, что ни один из средних объектов не равен нулю. – jdweng
@jdweng Уже пробовал, что. Он не сделал этого трюка: if (RO.hits.hits [0] ._ source.Biz.Rel [cnt_I] .org [cnt_III] .mem [cnt_IV] .attributes [cnt_V] .values [0]. value! = null) { LS_ande = "" + Convert.ToString (RO.hits.hits [0] ._ source.Biz.Rel [cnt_I] .org [cnt_III] .mem [cnt_IV] .attributes [cnt_V]. значения [0] .value); } –
'RootObject RO = new RootObject();' это отходы, если вы в следующей строке присваиваете что-то другое для 'RO'. Рассмотрим вместо этого 'var RO = JsonConvert.DeserializeObject (ответ);' –
crashmstr