Господа форумчане, выручайте, а то я уже голову сломал...
В ProjectMaker'e проект выполняется без ошибок, но при запуске в ZennoPoster'e постоянно выпадает ошибка парсинга JSON: "Выполнение действия Parse Json/Xml Unexpected character encountered while parsing value: F. Path '', line 0, position 0."
Кубик который выдает ошибку:
Добавлял паузы перед запросом от 1 до 20 секунд, но ничего не помогает. В ZP шаблон ломается. Даже на шарпе все переписал, но ZP просто отказывается выполнять нормально этот шаблон!
В ProjectMaker'e проект выполняется без ошибок, но при запуске в ZennoPoster'e постоянно выпадает ошибка парсинга JSON: "Выполнение действия Parse Json/Xml Unexpected character encountered while parsing value: F. Path '', line 0, position 0."
Кубик который выдает ошибку:
Добавлял паузы перед запросом от 1 до 20 секунд, но ничего не помогает. В ZP шаблон ломается. Даже на шарпе все переписал, но ZP просто отказывается выполнять нормально этот шаблон!
C#:
string token = project.Variables["token"].Value;
var host = $"https://lk.staropetrovskoe.ru/api/catalog/get_groups.json?token={token}&parent";
var resp = ZennoPoster.HTTP.Request(
method: ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.GET,
host,
contentPostingType: "",
proxy: "",
Encoding: "UTF-8",
respType: ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
Timeout: 30000,
Cookies: string.Empty,
UserAgent: project.Profile.UserAgent,
UseRedirect: true,
MaxRedirectCount: 5,
DownloadPath: project.Path,
UseOriginalUrl: true,
throwExceptionOnError: true,
cookieContainer: project.Profile.CookieContainer,
removeDefaultHeaders: true);
project.Tables["Таблица 1"].AddRow($"id\tНазвание\tРРЦ\tЦена опт\tВес кг.\tСклад СПБ\tСклад Есипово");
// Преобразование строки JSON в объект JObject
JObject jsonObj = JObject.Parse(resp);
// Использование JSONPath для получения объекта с "name" == "STAROSLIM"
JToken staroslimObject = jsonObj.SelectToken("$.data[?(@.name == 'STAROSLIM')]");
// Использование JSONPath для получения объекта с "name" == "STARO"
JToken staroObject = jsonObj.SelectToken("$.data[?(@.name == 'STARO')]");
JArray combinedArray = new JArray();
if (staroObject != null)
{
// Получение массива "children" для найденного объекта
JArray staroChildrenArray = (JArray)staroObject["children"];
combinedArray = new JArray(staroChildrenArray);
}
// Проверка наличия объекта
if (staroslimObject != null)
{
// Получение массива "children" для найденного объекта
JArray staroslimChildrenArray = (JArray)staroslimObject["children"];
combinedArray = new JArray(combinedArray.Concat(staroslimChildrenArray));
// Вывод значений "id" из каждого объекта в массиве "children"
foreach (JToken child in combinedArray)
{
string encodedId = WebUtility.UrlEncode(child["id"].ToString());
Thread.Sleep(30000);
host = $"https://lk.staropetrovskoe.ru/api/catalog/get_elements.json?token={token}&parent={encodedId}&store=034";
resp = ZennoPoster.HTTP.Request(
method: ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.GET,
host,
contentPostingType: "",
proxy: "",
Encoding: "UTF-8",
respType: ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
Timeout: 30000,
Cookies: string.Empty,
UserAgent: project.Profile.UserAgent,
UseRedirect: true,
MaxRedirectCount: 5,
DownloadPath: project.Path,
UseOriginalUrl: true,
throwExceptionOnError: true,
cookieContainer: project.Profile.CookieContainer,
removeDefaultHeaders: true);
var errorIfEmpty = true;
var regexGroups = ZennoLab.Macros.TextProcessing.Regex(resp, @"\{.*}", "0");
if (regexGroups.Count == 0)
{
if (errorIfEmpty) throw new Exception($"Ошибка при парсинге JSON. Ответ сервера: {resp}.");
}
else
{
var json = regexGroups[0].FirstOrDefault();
JObject dataObject = JObject.Parse(json);
JArray dataArray = (JArray)dataObject["data"];
foreach (JToken item in dataArray)
{
project.Tables["Таблица 1"].AddRow($"{item["id"]}\t{item["name"]}\t{item["price"]}\t{item["userprice"]}\t{item["weight"]}\t{item["storefree"]}\t{item["store_esip"]}");
}
}
}
}