rss

Профиль компании

Финансовые компании

Блог компании Os_Engine | Стандарты кода #8. JSON объекты и конвертация данных из них. Коннекторы для OsEngine #29.

В большинстве коннекторов OsEngine используется конвертация потоковых данных из JSON объектов. Поговорим о том, как правильно и не правильно поступать при их использовании.

Стандарты кода #8.  JSON объекты и конвертация данных из них. Коннекторы для OsEngine #29.

Библиотека для JSON.

Newtonsoft.Json

Именно эту библиотеку желательно использовать. Никакого смысла плодить в проекте множество преобразователей сообщений в JSON классы нет.

И на сегодняшний день можно говорить о том, что было бы не плохо, если бы она в итоге осталась единственной в нашем проекте для этих целей.

 

JSON объекты по коннектору должны лежать в папке Entity (Json) этого коннектора.

Стандарты кода #8.  JSON объекты и конвертация данных из них. Коннекторы для OsEngine #29.

Нельзя использовать JSON объекты, принадлежащие другим коннекторам.

Это важно, т.к. некоторые биржи прямо пишут, что у них 100 % совместимость с АПИ Binance. Однако на поверку эти заявления – ложь, либо правда частично. Ибо на Бинанс может пройти обновление, которое в итоге будет добавлено в биржу, которая об этом говорит через 2 месяца. И всё это время коннектор работать не будет. А скорее придётся переписать всё…

 

Все переменные в классе JSON объекта должны быть типа STRING.

Стандарты кода #8.  JSON объекты и конвертация данных из них. Коннекторы для OsEngine #29.

Некоторые биржи в описании JSON объектов сразу предлагают ставить типы переменных у JSON объектов вроде double, decimal, int. Однако шлют периодически вместо этих значений null или иные записи вместо этих переменных. Также биржи не учитывают региональные настройки при отсылке типов с плавающей запятой. От чего коннектор будет падать. Таким образом, пока мы не сделали все типы переменных string, мы получали ошибки конвертирования.

 

Запрет  использования  Convert.ToDecimal (string value).

Это не безопасно относительно локализации. И весь код, написанный с применением этого метода, может не работать на машине с другим языком. Использовать нужно НАШЕ расширение для string, находящееся вот здесь:

Стандарты кода #8.  JSON объекты и конвертация данных из них. Коннекторы для OsEngine #29.

Пример использования нашего, безопасного расширения:

Стандарты кода #8.  JSON объекты и конвертация данных из них. Коннекторы для OsEngine #29.

Пост из серии «Коннекторы к OsEngine».

Серия о том, как стать настоящим программистом и изменить свою профессию.

Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php

Комментарии открыты для друзей, добавляйтесь!

OsEngine: https://github.com/AlexWan/OsEngine
FAQ: https://o-s-a.net/os-engine-faq
Поддержка OsEngine: https://t.me/osengine_official_support

Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients

Стандарты кода #8.  JSON объекты и конвертация данных из них. Коннекторы для OsEngine #29.

★2

теги блога Алексей Ван <o-s-a.net>

....все тэги



UPDONW
Новый дизайн