程序库: JSON Serialization and Deserialization (native MQL) - 页 6

 
您好,首先感谢您提供这款功能强大的工具,请问是否有相关文档或更多使用示例?热忱的问候
 

v 1.09

- 增加了以指定精度(默认为 8 位数)序列化双数的可能性。
为此,添加了精度参数 m_prec,可以手动设置,也可以在调用构造函数或添加函数时设置。

- 修正了 MT4 中由于ArrayCopy 函数 的行为与 MT5 不同而导致的错误(WHOLE_ARRAY 常量不同)。

附加的文件:
JAson.mqh  31 kb
 
o_o:

v 1.09

- 增加了以指定精度(默认为 8 位)序列化双倍数的可能性。
为此,添加了精度参数 m_prec,可以手动设置,也可以在调用构造函数或添加函数时设置。

- 修正了 MT4 中由于ArrayCopy 函数 的行为与 MT5 不同(WHOLE_ARRAY 常量不同)而导致的错误。

更新了所有语言
 

在我的代码中调用 ArraySize( js["json value"] );

会出现编译错误

操作符[]- 变量


使用 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]] } )


阿列克谢,你是如何 "解析 "数组的?我正在为电报编写一个库,自定义键盘是一个数组的数组的数组的 json 对象。