ライブラリ: JSONシリアライズとデシリアライズ(ネイティブMQL) - ページ 6

 
このとてもパワフルなツールにまず感謝します。よろしくお願いします。
 

v 1.09

- 指定された精度(デフォルトは8桁)で倍数をシリアライズできるようにした。
この目的のために、精度パラメータm_precを追加しました。このパラメータは、手動で設定するか、コンストラクタまたはAdd関数を呼び出すときに設定することができます。

- ArrayCopy関数の 動作がMT5と異なる(WHOLE_ARRAY定数が異なる)ことによるMT4のバグを修正しました。

ファイル:
JAson.mqh  31 kb
 
o_o:

v 1.09

- 指定された精度(デフォルトは8桁)で倍数をシリアライズできるようにした。
この目的のために、精度パラメータm_precを追加しました。このパラメータは、手動で設定するか、コンストラクタまたはAdd関数を呼び出すときに設定することができます。

- ArrayCopy関数の 動作がMT5と異なることによるMT4のバグを修正(WHOLE_ARRAY定数が異なる)。

すべての言語で更新
 

私のコードからArraySize( js["json value"] ) を呼び出す;

を呼び出すと、コンパイルエラーが 発生します。

'operator[]'- 変数が期待される


mql 4 を使って


この問題を解決するために、JAson.mqhに追加した:

int size() { return ArraySize(m_e); } を追加した。

を追加した。


質問:配列のサイズを決定する方法はありますか?

多分、私はそれを見つけていない。


どうやら次のようにする必要があるようです。

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


内部関数のsize()の方が便利です。

 

1.10

要素数を返すint Size() 関数を追加

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

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

ファイル:
JAson.mqh  31 kb
 
o_o:

1.10

要素数を返すint Size() 関数を追加

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

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


素晴らしい!コードをありがとう!

 

v 1.11

-m_prec パラメータのデフォルト値を (=8 に) 修正 DoubleToString 関数の挙動を考慮。

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

ファイル:
JAson.mqh  31 kb
 

v 1.11

- DoubleToStringの 記述から、パラメータm_precの値を修正(=8)した。

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.


ファイル:
JAson.mqh  31 kb
 

ありがとう!
素晴らしい図書館だ。

 
o_o:

v1.08

配列の配列の解析を修正(例:{ "a":[[1],[2]] } )


アレクセイ、配列の配列をどうやって「解析」するんですか?私は今telegram用のライブラリを書いていて、カスタムキーボードはjsonオブジェクトの配列の配列の配列の配列の配列のjsonオブジェクトです。