Библиотеки: JSON Serialization and Deserialization (native MQL) - страница 17
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Эта библиотека вызывает ОШИБКУ, и я это подтвердил
мой код
Есть идеи, как это исправить?
Это происходит только тогда, когда я деарилизирую любую строку
Если строковое значение содержит символ ';', то десериализовать не удастся!
Все работает. Я нашел проблему на своей стороне.
Чем вы . Я отправляю POST WebRequests (http) из MT5 (MQL5) в Chat GPT-4-o-mini API (openai.com) . OpenAI получает данные в формате JSON . MQL не поддерживает JSON. Поэтому пришлось преобразовать строку в строку, затем преобразовать строку в массив Char[], чтобы вставить как postData в WebRequest. Я использую вашу библиотеку, я дам вам знать, как у меня дела.
Это потрясающе
Я думал о том же, чтобы кормить мой ML ответами из ChatGPT.
Не могли бы вы поделиться, как вы это сделали? С какими трудностями столкнулись?
Спасибо!
Здравствуйте, есть ли способ:
- Установить значение ключа в null
- Установить значение ключа в {} (пустой объект).
Кажется, что эти значения не будут корректно представлены, если попытаться их установить.
Спасибо за любой ответ
Что я делаю не так?
Реальный пример из практики. Строка длиной 21+ тыс символов. Несколько переменных и 2 больших массива b и a. В каждом по 500 подмассивов по 2 элемента:
Обнаружил несоответствие исходных данных и тех которые выдает JASON:
в первых 2-х строках выведен конец исходной строки, которая парсится JASON-ом.
При парсинге все элементы записываются в массив. Получено n=2000 элементов. Это правильно.
Потом 2 строки - это первые 20 элементов массива и ещё 2 строки последних 20 элементов.
В начале массива всё совпадает.
Но в конце первая цифра из пар совпадает, а вторая нет. Видимо взяло откуда то еще.
Проверил. Во второй массив a, попали данные из первого массива b. Вот концовка исходных данных массива а:
Т.е. второй массив в подмассивах в первых элементах содержит свое /правильное значение, во вторых элементах - значения из первого массива.
Проблема видимо в коде парсера.
Очень напрягает подмена данных - как на них потом тестировать? Только неправильно! Повезло, что заметил. Надеюсь для более простых вариантов без вложенных массивов работает правильно. Но надо все проверять, прежде чем пускать в работу.
Код, на основе примеров из ветки, только с моей строкой данных:
Полный код скрипта с этой строкой приложен.
Библиотека песледней версии "1.13" - скачал с ГитХаба
Выше тоже пишут про проблемы со вторым элементом. Видимо та же проблема.
Сделал себе разборку данных под конкретный шаблон, через сплит по кавычкам " с последующей выборкой элементов по номерам.
Минус- под каждый шаблон придется тратить время и писать свой парсер и считать номера элементов...
Плюс - в 3 раза быстрее универсального и удобного JASON. Вместо 40 секунд 13 на исходных данных ~400 Mb.
Пол дня потратил на это.
Точнее на 3 версии:
1) сначала в char массиве искал конкретные подстроки и потом собирал строки из их значений, - предполагал, что это будет самый быстрый код
Хотел работать напрямую с char массивом, т.к. он у меня исходный из WebRequest или FileOpen и не хотел его собирать в большую строку для скорости.
2) потом из char[] создавал строки только с массивами b и а - и сплитовал
3) и наконец самый простой код - каждую строку собирал в одну большую текстовую строку (со всеми данными в т.ч. лишними) и ее сплитовал
Оказалось, что все 3 варианта примерно одинаковы по скорости. Поэтому остановился на самом простом - 3-м варианте. Его будет потом проще переделывать к другим шаблонам с другими данными.
Почему то думал, что работа с char массивом будет быстрее, чем его сборка в строку и разделение на строковый массив через ". Видимо split хорошо оптимизирован по скорости.
Хорошо бы, если бы разработчики MQ добавили в язык какой-нибудь из стандартных парсеров JSON. JASON не все варианты правильно парсит и судя по всему разработчик уже тут не бывает и надежды на исправление нет.Библиотека песледней версии "1.13" - скачал с ГитХаба
Там переписанный форк кода с этого топика (1.12). С оригиналом не проверяли?
PS: У меня есть 1.12 оригинальный и сильно исправленный. Не помню, откуда исправления, скорее всего с этой ветки.