Библиотеки: JSON Serialization and Deserialization (native MQL) - страница 3

 

ну получается что это просто массив объектов.

общий вид  "Array": [ {..}, {..}, ]

то есть заверните этот список в фигурные скобки

"List": [ {"symbol": "USDJPY", "type": "Buy" },  { "symbol": "EURUSD", "type": "Sell" } ]
 

Я ограничил квадратными скобками. Но считывается только первый объект:

[ {
     "symbol": "USDJPY",
     "type": "Buy",
     "lot": 0.5,
     "price_open": 102.36,
     "price_close": 102.44,
     "stop_loss": 99.25,
     "take_profit": 103.25 
    },
    {

Как считывать в массиве?

 

Вы валидный json парсеру даёте?

у меня все работает с вашими данными

  string in="{ \"array\": [ { \"symbol\": \"USDJPY\", \"type\": \"Buy\", \"lot\": 0.5, \"price_open\": 102.36, \"price_close\": 102.44, \"stop_loss\": 99.25, \"take_profit\": 103.25 }, { \"symbol\": \"EURUSD\", \"type\": \"Sell\", \"lot\": 0.2, \"price_open\": 1.1044, \"price_close\": 1.1252, \"stop_loss\": 1.1434, \"take_profit\": 1.0922 } ] }";
  CJAVal js(NULL,jtUNDEF);
  js.Deserialize(in);
  string out="";
  js.Serialize(out);
  Print(out);
 
Алексей, премного благодарен! Забыл обмотать в фигурные скобки...
 

Вопрос от "чайника".

А как можно получить значение ключа, не прибегая к методу поиска ключа?

virtual CJAVal *CJAVal::FindKey(string akey) 
 
Dennis Kirichenko:

Вопрос от "чайника".

А как можно получить значение ключа, не прибегая к методу поиска ключа?

только зная полный путь к ключу, но findkey будет использована неявно.

double d=jo["order"]["profit"];

double d=ja["array"].m_e[0]["profit"];

---

иначе обращайтесь напрямую к массиву m_e, зная точный индекс.

 

Здравствуйте. Скажите где можно прочитать о всех функциях вашей библиотеки? На днях пришлось решать задачу по взаимодействию с одним из интернет ресурсов, ответ от которого возвращается в формате JSON. Ваша библиотека пологла мне сэкономить время и не заниматься сомостоятельным разбором JSON, за что Вам огромное спасибо! Но хотелось бы разобраться в функциях библиотеки поглубже. Описания функцию библиотки не нашел.

И еще один вопрос: в ответе от сервиса в одном из полей идет небольшое описание на кирилице, но JSON сервиса кодирует этот текст следующим образом: "description":"\u041d\u043e\u0432\u043e\u0435 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 v.2\r\n1.\u0418\u0437\u043c\u0435\u043d\u0435\u043d \u0434\u0438\u0437\u0430\u0439\u043d \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438\r\n2.\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043c\u0438\u043d\u0438\u043f\u0430\u043d\u0435\u043b\u044c\r\n3.\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0433\u043e \u0441\u0447\u0435\u0442\u0430\r\n4.\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438\r\n\r\n"

Возможно ли с помощью Вашей библиотке перевести данный текст в нужный формат?

Заранее спасибо! 

 

в либе только две основных функции

Serialization и Deserialization.  

Всё остальное - это перегруженные операторы, установка и чтение массивов

---

этот экранированный текст преобразовать можно

добавлю парсинг в Unescape функцию в следующей версии

 

версию до 1.05 обновил

текст из вашего примера будет преобразован в

{"description":"Новое в версии v.2\r\n1.Изменен дизайн торговой панели\r\n2.Добавлена минипанель\r\n3.Добавлено отображение баланса выбранного торгового счета\r\n4.Исправлены выявленные ошибки\r\n\r\n"}

---

пока админы апрувят в кодебазу, можете скачать приложенный.

Файлы:
jason.mqh  30 kb
 
o_O:

версию до 1.05 обновил

текст из вашего примера будет преобразован в

{"description":"Новое в версии v.2\r\n1.Изменен дизайн торговой панели\r\n2.Добавлена минипанель\r\n3.Добавлено отображение баланса выбранного торгового счета\r\n4.Исправлены выявленные ошибки\r\n\r\n"}

---

пока админы апрувят в кодебазу, можете скачать приложенный.

Огромное спасибо! Значит я могу убрать теперь из совы декодер, который уже написал. Пусть все будет в одной библиотеке! Очень оперативная реакция! Низкий поклон!