Всем доброго времени суток!
Есть JSON из которого нужно 44 ключа распарсить в таблицу. Сначала просто кубиком "JSON в список" сделал, но получилось очень громоздко, хотелось бы сложить в 1 кубик, а никак не получается. Думал через JSONPath из JArray собрать нужные данные, но не в каждом объекте есть все ключи, из-за чего собрать потом списки в таблицу невозможно...
Потом попробовал построчно распарсить
но всплывают ошибки, из-за того, что в некоторых объектах вложенный массив "instock" пустой или не содержит нужный ключ.
Пробовал проверку поставить на пустой массив
но и тут ловлю ошибки
В общем кубик "JSON в список" работает идеально, но не понятно как он это делает
Есть JSON из которого нужно 44 ключа распарсить в таблицу. Сначала просто кубиком "JSON в список" сделал, но получилось очень громоздко, хотелось бы сложить в 1 кубик, а никак не получается. Думал через JSONPath из JArray собрать нужные данные, но не в каждом объекте есть все ключи, из-за чего собрать потом списки в таблицу невозможно...
Потом попробовал построчно распарсить
C#:
for (var i = 0; i < project.Json.Count; i++)
{
project.Lists["A"].Add(project.Json[i].article);
project.Lists["F"].Add(project.Json[i].name);
project.Lists["G"].Add(project.Json[i].serie);
project.Lists["H"].Add(project.Json[i].warranty);
project.Lists["I"].Add(project.Json[i].tnved);
project.Lists["J"].Add(project.Json[i].texts.descript);
project.Lists["K"].Add(project.Json[i].texts.application);
project.Lists["L"].Add(project.Json[i].unit);
project.Lists["M"].Add(project.Json[i].package.name);
project.Lists["N"].Add(project.Json[i].package.qty);
project.Lists["O"].Add(project.Json[i].package.qty_unit);
project.Lists["P"].Add(project.Json[i].package.length);
project.Lists["Q"].Add(project.Json[i].package.length_unit);
project.Lists["R"].Add(project.Json[i].package.width);
project.Lists["S"].Add(project.Json[i].package.width_unit);
project.Lists["T"].Add(project.Json[i].package.height);
project.Lists["U"].Add(project.Json[i].package.height_unit);
project.Lists["V"].Add(project.Json[i].package.weight);
project.Lists["W"].Add(project.Json[i].package.weight_unit);
project.Lists["X"].Add(project.Json[i].package.weight_netto);
project.Lists["Y"].Add(project.Json[i].package.weight_netto_unit);
project.Lists["Z"].Add(project.Json[i].package.volume);
project.Lists["AA"].Add(project.Json[i].package.volume_unit);
project.Lists["AB"].Add(project.Json[i].container.name);
project.Lists["AC"].Add(project.Json[i].container.qty);
project.Lists["AD"].Add(project.Json[i].container.qty_unit);
project.Lists["AE"].Add(project.Json[i].container.length);
project.Lists["AF"].Add(project.Json[i].container.length_unit);
project.Lists["AG"].Add(project.Json[i].container.width);
project.Lists["AH"].Add(project.Json[i].container.width_unit);
project.Lists["AI"].Add(project.Json[i].container.height);
project.Lists["AJ"].Add(project.Json[i].container.height_unit);
project.Lists["AK"].Add(project.Json[i].container.weight);
project.Lists["AL"].Add(project.Json[i].container.weight_unit);
project.Lists["AM"].Add(project.Json[i].container.weight_netto);
project.Lists["AN"].Add(project.Json[i].container.weight_netto_unit);
project.Lists["AO"].Add(project.Json[i].container.volume);
project.Lists["AP"].Add(project.Json[i].container.volume_unit);
project.Lists["AQ"].Add(project.Json[i].prices.retail);
project.Lists["AR"].Add(project.Json[i].prices.mrc1);
project.Lists["AS"].Add(project.Json[i].prices.mrc2);
project.Lists["AT"].Add(project.Json[i].prices.mrc3);
project.Lists["AU"].Add(project.Json[i].prices_currency);
project.Lists["AV"].Add(project.Json[i].instock.stock);
project.Lists["AW"].Add(project.Json[i].instock.unit);
}
Выполнение действия CSharp OwnCode. "ZennoLab.JXParser.JsonDynamic" не содержит определения для "stock"
Пробовал проверку поставить на пустой массив
C#:
for (var i = 0; i < project.Json.Count; i++)
if (project.Json[i].GetMember("instock").ToString() == "[]")
{
project.Lists["AV"].Add("");
project.Lists["AW"].Add("");
}
else
{
project.Lists["AV"].Add(project.Json[i].GetMember("instock").GetMember("stock"));
project.Lists["AW"].Add(project.Json[i].GetMember("instock").GetMember("unit"));
}
Выполнение действия CSharp OwnCode. Ссылка на объект не указывает на экземпляр объекта.
В общем кубик "JSON в список" работает идеально, но не понятно как он это делает
Вложения
-
317,7 КБ Просмотры: 6