Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Например {"ABC":{...}, "DEF":{...}, "GHI":{...}}, заранее не знаю названия элементов, как пробежаться по всем?
Библиотека очень полезная. Но столкнулся с тем, что при сериализации значений типа double происходит сильная потеря точности.
Пример:
double minutes_open[] = {0.95347, 0.95317, 0.95324}
for (int i=0; i<ArraySize(minutes_open); ++i) jv["minutes_open"].Add(minutes_open[i]);
После сериализации получаю:
"minutes_open":[9.53e-01,9.53e-01,9.53e-01]
Т.е. последние 2 значащих знака просто потеряны и все значения в массиве стали попросту равны друг другу. В результате все расчеты на основе этих данных идут прахом...
В итоге обошел это преобразованием значений массива в string.
Всем привет!
Документация JAson не полная на этом сайте, и я написал более подробную документацию https://github.com/vivazzi/JAson/, а также добавил юнит-тесты: может быть кому-нибудь будет это полезно.
И я описал проблему использования вложенного Json (CJAVal объекта): https://github.com/vivazzi/JAson/issues/1.
CJAVal объект не корректно сохраняется, если использовать знак "=" (сохраняется пустой ключ):
Да, в тестах, прилагаемом на странице библиотеки на этом сайте, можно найти, что нужно использовать метод Set():
Но если кто-нибудь сможет поправить библиотеку так, чтобы можно было сохранять вложенные Json структуры через знак "=", то это бы очень помогло многим. Так как я заметил, что некоторые думают, что библиотека имеет ошибки, когда пытаются присвоить вложенный CJAVal обычным способом через "=".
Надеюсь, это вообще возможно в рамках MQL языка. Я сам пробовал поправить, но у меня нет глубоких знаний языка MQL, и пока не получилось сделать присваивание через "=".
Проблема присваивания вложенных Json структур через знак "=" была решена Laszlo Tormasi в комментарии https://www.mql5.com/en/forum/65320/page3#comment_21453129.
Версия JAson с правками на https://github.com/vivazzi/JAson
Спасибо всем, кто пытался разобраться в проблеме и помочь!
Исправил ошибку ("array out of range"), которая возникала при отрицательных индексах массива. Теперь оператор [] возвращает NULL.
Обработка выглядит так.
Также, добавил метод ToIntI, для удобства. Поскольку, ToInt возвращает long.
Не пойму, как nested json прочитать.
Вот есть строка вида:
И как её прочитать и получить доступ к элементам?
Как только не пытался - не получается.Не пойму, как nested json прочитать.
Вот есть строка вида:
И как её прочитать и получить доступ к элементам?
Как только не пытался - не получается.Если плохо понимаете структуру вашей json строки или что-то идёт не так, то делайте следующим образом:
Чтобы легко понять структуру json строки пользуйтесь этим сайтом: https://jsoneditoronline.org/
Artem Maltsev, рекомендую вам добавить мою версию, поскольку, у скачавших модуль сделать так не получится: #107 .
Подскажите, как добавить округление в double
Есть вариант ниже, но он добавляет квадратные скобки.
Как получить?
Доброго времени суток!
Крутая библиотека очень помогает, огромное спасибо.
Только вот столкнулся с такой проблемой - как вытащить подстроку из строки:
Есть строка
{"type":"settings","data":{"auto_trade":true,"stop_trade":true}}
нужно вытащить подстроку data.
Так не получается:
CJAVal js;
js.Deserialize(stroka);
js["data"].ToStr();