// Изначально у нас есть объект, содержащий массив объектов с определенными полями
var extra = new {
extra = new[] {
new {option_group = "1", url = "site3.ru"},
new {option_group = "2", url = "site2.ru"},
new {option_group = "3", url = "site1.ru"}
}
};
// Дальше мы имеем массив объектов, содержащих массивы объектов
var mockups = new { mockups =
new[] {
extra,
extra,
extra
}
};
// И в конце, все эти данные - это оказывается один объект
var result = new{ result = mockups };
string json = Global.ZennoLab.Json.JsonConvert.SerializeObject(result); // Превращаем в JSON
project.Json.FromString(json); // Заносим в переменные Зеннопостера
IZennoTable tb1 = project.Tables["Таблица 1"];
// Сколько всего массивов mockups в result
int count_mockups = project.Json.result.mockups.Count;
if(count_mockups > 0) {
project.SendInfoToLog("Есть массивы mockups", true);
for(int i=0;i<count_mockups;i++) {
project.SendInfoToLog(string.Format(@"Взяли в работу {0} массив mockups", i), true);
int count_extra = project.Json.result.mockups[i].extra.Count;
project.SendInfoToLog(string.Format(@"{0} массив mockups содержит {1} массивов extra", i, count_extra), true);
if(count_extra > 0) {
for(int j=0; j < count_extra; j++) {
project.SendInfoToLog(string.Format(@"С {0} массива mockups берем элемент {1}", i, j), true);
string option_group = string.Empty;
try {
project.SendInfoToLog(string.Format(@"{0} массив mockups {1} extra содержит option_group", i, j), true);
option_group = project.Json.result.mockups[i].extra[j].option_group;
}
catch {
project.SendInfoToLog(string.Format(@"{0} массив mockups {1} extra НЕ содержит option_group", i, j), true);
}
string url = string.Empty;
try {
project.SendInfoToLog(string.Format(@"{0} массив mockups {1} extra содержит url", i, j), true);
url = project.Json.result.mockups[i].extra[j].url;
}
catch {
project.SendInfoToLog(string.Format(@"{0} массив mockups {1} extra НЕ содержит url", i, j), true);
}
if(!string.IsNullOrEmpty(option_group) && !string.IsNullOrEmpty(url)) {
project.SendInfoToLog(string.Format(@"{0} массив mockups {1} extra содержит нужные данные - сохраняем", i, j), true);
tb1.AddRow(new[] {string.Format(@"mockups[{0}]",i), string.Format(@"extra[{0}]",j),option_group, url });
}
else {
project.SendInfoToLog(string.Format(@"{0} массив mockups {1} extra НЕ содержит нужные данные - идём к следующему", i, j), true);
}
}
}
else {
project.SendInfoToLog(string.Format(@"{0} массив mockups не содержит массивов extra - идём к следующему mockups", i), true);
}
}
}
else {
project.SendInfoToLog("Нет массивов mockups", true);
}