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

 
o_o:

1.12

поставил шаг 100 в ArrayResize

Нужно ли обновить исходники в Codebase?

 
Delta.800:

Уважаемые специалисты! Прошу Вас помочь мне разобраться с библиотекой. ( в объектно ориентированном программировании я пока не силен поэтому я не могу разобраться в коде самой библиотеки и в статье посвященной бирже BTC-E. поэтому я прошу простого примера как в посте )

Мне нужно разобрать два публичных апи биржи WEX.NZ.

https://wex.nz/api/3/info

отсюда, мне нужно в массив получить все доступные пары (btc_usd, btc_rur, ...) (просто названия пар, без параметров, параметры, по известным названиям у меня получается получать...)


https://wex.nz/api/3/depth/btc_usd


а отсюда в два массива (asks и bids) получить цену и стоимость ордеров.

Буду очень признателен за помощь!!! Заранее Спасибо!


покажите ваш код, на котором остановились, что именно у вас не получается
 
Rashid Umarov:

Нужно ли обновить исходники в Codebase?

уже там давно
 

Хорошая работа, респект!

Однако... если попадают для десериализации битые данные (количество открывающих не равно закрывающим ковычкам или скобкам), то программа рушится с сообщением о выходе за пределы массива. А это очень не хорошо, обязаны быть учтены подобные моменты в работе с массивами хотя бы, если нет проверки на корректность входных данных.

 
Andrey Dik:

Хорошая работа, респект!

Однако... если попадают для десериализации битые данные (количество открывающих не равно закрывающим ковычкам или скобкам), то программа рушится с сообщением о выходе за пределы массива. А это очень не хорошо, обязаны быть учтены подобные моменты в работе с массивами хотя бы, если нет проверки на корректность входных данных.

Конкретные данные продемонстрируйте
 
o_o:


покажите ваш код, на котором остановились, что именно у вас не получается

Вобщем я даже ума не приложу как можно получить названия всех пар из первой ссылки :-(

---

из первой ссылки доступ к параметрам пары, я получаю так:

CJAVal dataM;
dataM.Deserialize(ttt);  
... 
Print(dataM["pairs"]["btc_usd"]["fee"].ToDbl());

где ttt - это строка полученная от веб запроса.

из второй ссылки, я решил задачу, доступ получаю так:

Print(dataM["btc_usd"]["asks"].m_e[1][0].ToDbl());
где
m_e[X][Y]

X- номер ордера (начиная с нулевого)

Y- 0- это цена, 1- это стоимость .

 
Delta.800:

Вобщем я даже ума не приложу как можно получить названия всех пар из первой ссылки :-(

---

из первой ссылки доступ к параметрам пары, я получаю так:

где ttt - это строка полученная от веб запроса.

из второй ссылки, я решил задачу, доступ получаю так:

где

X- номер ордера (начиная с нулевого)

Y- 0- это цена, 1- это стоимость .

ну и ок.

если сейчас это решает вашу задачу - пользуйтесь этим решением.

будет не хватать, придумаете что то лучшее.

 
o_o:

ну и ок.

если сейчас это решает вашу задачу - пользуйтесь этим решением.

будет не хватать, придумаете что то лучшее.

нет, нет Вы немного неправильно поняли...

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

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

  //---
  in = "{\"asdasdasd\":{\"sdfs\":0.02189746,\"dfgdf\":0.01925917}}}}";
  out = "";
  b = js.Deserialize (in);
  js.Serialize (out);
  Print (out);
  
  //---
  in = "{\"asdasdasd\":{\"sdfs\":0.02189746,\"dfgdf\":0.01925917}}}";
  out = "";
  b = js.Deserialize (in);
  js.Serialize (out);
  Print (out);
  
  //---
  in = "{\"asdasdasd\":{\"sdfs\":0.02189746,\"dfgdf\":0.01925917}}";
  out = "";
  b = js.Deserialize (in);
  js.Serialize (out);
  Print (out);
  
  //---
  in = "{\"asdasdasd\":{\"sdfs\":0.02189746,\"dfgdf\":0.01925917}";
  out = "";
  b = js.Deserialize (in);
  js.Serialize (out);
  Print (out);
  
  //---
  in = "{\"asdasdasd\":{\"sdfs\":0.02189746,\"dfgdf\":0.01925917";
  out = "";
  b = js.Deserialize (in);
  js.Serialize (out);
  Print (out);


2018.02.21 14:03:39.861    jason_test (EURUSD,W1)    {"asdasdasd":{"sdfs":0.02189746,"dfgdf":0.01925917}}
2018.02.21 14:03:39.861    jason_test (EURUSD,W1)    {"asdasdasd":{"sdfs":0.02189746,"dfgdf":0.01925917}}
2018.02.21 14:03:39.861    jason_test (EURUSD,W1)    {"asdasdasd":{"sdfs":0.02189746,"dfgdf":0.01925917}}
2018.02.21 14:03:39.861    jason_test (EURUSD,W1)    {"asdasdasd":{"sdfs":0.02189746,"dfgdf":0.01925917}}
2018.02.21 14:03:39.862    jason_test (EURUSD,W1)    array out of range in 'json.mqh' (597,19)