Ошибка при выполнении действия Parse Json/Xml

Денчик

Client
Регистрация
01.02.2023
Сообщения
12
Благодарностей
2
Баллы
3
Господа форумчане, выручайте, а то я уже голову сломал...
В ProjectMaker'e проект выполняется без ошибок, но при запуске в ZennoPoster'e постоянно выпадает ошибка парсинга JSON: "Выполнение действия Parse Json/Xml Unexpected character encountered while parsing value: F. Path '', line 0, position 0."
116102


Кубик который выдает ошибку:
116103


Добавлял паузы перед запросом от 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"]}");
            }
        }
        
    }
}
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
в лог выводи переменную которую парсишь и не надо будет гадать почему....
 

angerza

Client
Регистрация
17.02.2012
Сообщения
8
Благодарностей
3
Баллы
3
Удалось как-то победить в итоге?
 

Денчик

Client
Регистрация
01.02.2023
Сообщения
12
Благодарностей
2
Баллы
3
Не помню уже :D
Вобще обычно когда такая фигня случается, то оказывается что причина в банальной невнимательности. Где-то что-то забыл или шаблон случайно продублировал и zp и pm разные шаблоны отрабатывают :an:
 

Денчик

Client
Регистрация
01.02.2023
Сообщения
12
Благодарностей
2
Баллы
3
А ну там походу ответ от сервера кривой какой-то приходил. В общем закинь перед ошибкой оповещение с содержимым переменной и разбирайся, почему ответ приходит не тот что нужно
 
Регистрация
10.03.2015
Сообщения
76
Благодарностей
16
Баллы
8
Помогите пожалуйста второй день бьюсь с такой же ошибкой в проджекте все парсит, а в зенке отказывается , пишет
Выполнение действия Parse Json/Xml Error reading JToken from JsonReader. Path '', line 0, position 0. вставлял вывел сообщение перед парсингом, сообщение вставляю в проджекте все норм парсит
 

Денчик

Client
Регистрация
01.02.2023
Сообщения
12
Благодарностей
2
Баллы
3
Перед кубиком "обработка json" Поставь в лог вывод переменной в которой результат get- запроса. Скорее всего у тебя приходит ошибка в запросе из-за того, что запросы отправляешь слишком часто. Расставь паузы перед запросами
 
Регистрация
10.03.2015
Сообщения
76
Благодарностей
16
Баллы
8
Перед кубиком "обработка json" Поставь в лог вывод переменной в которой результат get- запроса. Скорее всего у тебя приходит ошибка в запросе из-за того, что запросы отправляешь слишком часто. Расставь паузы перед запросами
я же говорю поставил, гет ответ приходит нормальный т.к его напрямую вставляю и все парсит
 
Регистрация
10.03.2015
Сообщения
76
Благодарностей
16
Баллы
8
сохранил новый проект чисто с этим гет запросом, все норм парсит
 
  • Спасибо
Реакции: fadim

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)