Bibliotecas: JSON Serialization and Deserialization (native MQL) - página 6

 
Hola, en primer lugar gracias por esta herramienta tan potente - ¿hay por casualidad alguna documentación disponible en algún sitio? o ¿algunos ejemplos más de uso? Un cordial saludo
 

v 1.09

- añadida la posibilidad de serializar números dobles con precisión especificada (por defecto era de 8 dígitos).
Para ello, se ha añadido el parámetro de precisión m_prec, que puede establecerse manualmente o al llamar al constructor o a la función Add.

- corregido error en MT4 debido al diferente comportamiento de la función ArrayCopy de MT5 (la constante WHOLE_ARRAY es diferente).

Archivos adjuntos:
JAson.mqh  31 kb
 
o_o:

v 1.09

- añadida la posibilidad de serializar números dobles con precisión especificada (por defecto era de 8 dígitos).
Para ello, se ha añadido el parámetro de precisión m_prec, que puede establecerse manualmente o al llamar al constructor o a la función Add.

- corregido un error en MT4 debido al diferente comportamiento de la función ArrayCopy de MT5 (la constante WHOLE_ARRAY es diferente).

Actualizado en todos los idiomas
 

llamar a ArraySize( js["valor json"] ) desde mi código;

da un error de compilación

operador[]' - variable esperada


usando mql 4


para solucionar el problema he añadido a JAson.mqh

int tamaño() { return TamañoArray(m_e); }

para determinar el tamaño del array


pregunta: ¿hay alguna forma de determinar el tamaño del array?

Quizás no la he encontrado.


Al parecer hay que hacerlo así

ArraySize( js["valor json"].m_e )


la función interna size() me resulta más cómoda.

 

1.10

Añadida la función int Size() para devolver el número de elementos

ejemplo

n=js["object_name"].Size(); // количество элементов в объекте
n=js["array_name"].Size(); // количество элементов в массиве

// альтернатива
n=ArraySize(js["object_name"].m_e);
n=ArraySize(js["array_name"].m_e);

Archivos adjuntos:
JAson.mqh  31 kb
 
o_o:

1.10

Añadida la función int Size() para devolver el número de elementos

ejemplo

n=js["object_name"].Size(); // количество элементов в объекте
n=js["array_name"].Size(); // количество элементов в массиве

// альтернатива
n=ArraySize(js["object_name"].m_e);
n=ArraySize(js["array_name"].m_e);


Genial! buen trabajo gracias por el código!

 

v 1.11

- fijado el valor por defecto del parámetro m_prec (a =8) teniendo en cuenta el comportamiento de la función DoubleToString

Если значение m_prec лежит в диапазоне от 0 до 16, то будет получено строковое представление числа с указанным количество знаков после запятой.
Если значение
m_prec лежит в диапазоне от -1 до -16, то будет получено строковое представление числа в научном формате с указанным количеством знаков после запятой.
Во всех остальных случаях строковое представление числа будет содержать 8 знаков после запятой.

Archivos adjuntos:
JAson.mqh  31 kb
 

v 1.11

- Se corrige el valor del parámetro m_prec (=8)a la vista de la descripción DoubleToString.

Wenn sich der Wert m_prec im Bereich von 0 bis 16 befindet,bekommt man die Zeilendarstellung der Zahl mit der angegebenen Zahl der Dezimalzeichen.
Wenn sich der Wert
m_prec im Bereich von -1 bis -16 befindet, bekommt man Zeilendarstellung der Zahl im wissenschaftlichen Format mit der angegebenen Anzahl der Dezimalzeichen nach dem Komma.
In allen anderen Faellen wird der Zeilenwert der Zahl 8 Dezimalzeichen nach dem Komma enthalten.


Archivos adjuntos:
JAson.mqh  31 kb
 

¡Gracias!
Maravillosa biblioteca.

 
o_o:

v1.08

Corregido el análisis sintáctico de matrices de matrices (p.ej. { "a":[[1],[2]] } )


Alexey, ¿cómo "parseas" un array de arrays? Estoy escribiendo una librería para telegram ahora mismo, el teclado personalizado es un objeto json de un array de arrays de arrays de objetos json