Bibliotecas: Serialização e desserialização de JSON (MQL nativo) - página 6

 
Olá, primeiramente, obrigado por essa ferramenta muito poderosa. Por acaso, há alguma documentação disponível em algum lugar? ou mais alguns exemplos de uso? Saudações calorosas
 

v 1.09

- adicionada a possibilidade de serializar números duplos com precisão especificada (o padrão era 8 dígitos).
Para essa finalidade, foi adicionado o parâmetro de precisão m_prec, que pode ser definido manualmente ou ao chamar o construtor ou a função Add.

- Corrigido o erro no MT4 devido ao comportamento diferente da função ArrayCopy do MT5 (a constante WHOLE_ARRAY é diferente).

Arquivos anexados:
JAson.mqh  31 kb
 
o_o:

v 1.09

- adicionada a possibilidade de serializar números duplos com precisão especificada (o padrão era 8 dígitos).
Para essa finalidade, foi adicionado o parâmetro de precisão m_prec, que pode ser definido manualmente ou ao chamar o construtor ou a função Add.

- Corrigido um erro no MT4 devido ao comportamento diferente da função ArrayCopy do MT5 (a constante WHOLE_ARRAY é diferente).

Atualizado em todos os idiomas
 

chamando ArraySize( js["json value"] ) do meu código;

gera um erro de compilação

'operator[]' - variável esperada


usando mql 4


Para resolver o problema, adicionei ao JAson.mqh:

int size() { return ArraySize(m_e); }

para determinar o tamanho da matriz


Pergunta: existe alguma maneira de determinar o tamanho da matriz?

Talvez eu não tenha encontrado.


Aparentemente, você precisa fazer isso da seguinte forma

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


A função interna size() é mais conveniente para mim.

 

1.10

Adicionada a função int Size() para retornar o número de elementos

exemplo

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

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

Arquivos anexados:
JAson.mqh  31 kb
 
o_o:

1.10

Adicionada a função int Size() para retornar o número de elementos

exemplo

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

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


Ótimo! Bom trabalho, obrigado pelo código!

 

v 1.11

- valor padrão fixo do parâmetro m_prec (para =8) levando em conta o comportamento da função DoubleToString

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

Arquivos anexados:
JAson.mqh  31 kb
 

v 1.11

- O valor do parâmetro m_prec é corrigido (=8)em vista da descrição 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.


Arquivos anexados:
JAson.mqh  31 kb
 

Obrigado!
Biblioteca maravilhosa.

 
o_o:

v1.08

Correção da análise de matriz de matrizes (por exemplo, {"a":[[1],[2]] } )


Alexey, como você "analisa" uma matriz de matrizes? Estou escrevendo uma biblioteca para telegrama no momento, o teclado personalizado é um objeto json de uma matriz de matrizes de matrizes de objetos json