欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

一个强大且功能丰富的 MQL5 JSON 库,旨在带来类似于 Python/JS 的现代开发体验 - MetaTrader 5 库

author emer | 578 人阅读 | 0 人评论 |

MQL5 JSON 库是一个功能强大、功能丰富的库,专为在 MQL5 环境中解析、操作和序列化 JSON 数据而设计。它提供了一个简单直观的文档对象模型 (DOM) API,旨在使 MQL5 中的 JSON 处理体验与 JavaScript 和 Python 等现代编程语言相媲美。

该库能够处理广泛的任务,从读取简单的 EA 配置到系统之间复杂的实时数据交换。其主要功能和特点包括:

灵活的解析器:可选择支持 JSON5 的一些非标准功能,例如代码注释和尾随逗号,以增强与各种数据源的兼容性。

--- 操纵和访问 ---

直观的 DOM 遍历:使用键 (node["key"]) 和索引 (node[0]) 的直观语法访问数据,就像使用 Python 字典或 JavaScript 对象一样。

动态修改:自由添加、更新或删除 JSON 对象中的键值对和数组中的元素( Set 、 Add 、 Remove )。

--- 高级查询和处理 ---

强大的查询引擎:内置支持JSON 指针(RFC 6901,用于直接路径访问)和JSON路径(对于复杂和模糊查询),能够从深度嵌套的复杂结构中批量或精确地高效提取一个或多个数据节点。

实用功能:提供文档克隆 ( .Clone() ) 和深度合并 ( JsonMerge ) 等高级功能,极大地简化了常见的复杂任务,例如将“默认配置”与“用户配置”合并。

--- 稳健性和安全性 ---

自动内存管理:采用RAII(资源获取即初始化)设计模式。 JsonDocument 负责管理其所有节点的生命周期。开发者无需手动新增/删除任何JSON元素,从根本上消除了内存泄漏的风险。

2. 核心概念和内存管理

[!!] 2.1 命名空间 - 集成项目的关键 [!!]最重要的提示:该库中的所有类(例如 JsonDocument 、 JsonNode )和全局函数(例如 JsonParse )都封装在名为 MQL5_Json 的命名空间中。

**如何正确使用它:** - **在头文件 (.mqh)** 中:MQL5 确实如此不是允许`使用命名空间` 全球的范围标头文件。 **因此,您必须使用完全限定名称**。这是唯一可靠的方法多-文件项目。不正确:`JsonDocument doc;` 正确:`MQL5_Json::JsonDocument doc;` - **内部函数主程序文件 (.mq5)**:为了方便起见,您可以使用 `使用函数内部的命名空间 MQL5_Json;`,但是确保概论 示例,所有代码本手册将使用完全限定名称方法。 **如果你遇到`'JsonNode'- 宣言没有输入`编译错误,** **几乎总是因为你忘记了 添加 `MQL5_Json::` 前缀** ** 类型功能。**

[!!]2.2 内存管理模型JsonDocument拥有数据; JsonNode 只是一个看法

[!!] 2.3 MQL5 中的对象传递 MQL5 要求所有类对象(包括 JsonNode )作为函数参数传递必须通过引用传递(使用 &)。错误:void myFunction(MQL5_Json::JsonNode 节点) 正确:void myFunction(MQL5_Json::JsonNode &node)


附件下载

📎 jsoncore.mqh (2.18 KB)

📎 jsonnode.mqh (5.67 KB)

📎 jsonparser.mqh (3.27 KB)

📎 jsonserializer.mqh (9.77 KB)

📎 jsonstream.mqh (4.82 KB)

📎 jsonstreamparser.mqh (3.05 KB)

📎 jsontypes.mqh (16.29 KB)

📎 jsonutils.mqh (3.87 KB)

📎 jsondocument.mqh (6.93 KB)

📎 jsonapiimpl.mqh (33.47 KB)

📎 jsonpath.mqh (23.42 KB)

📎 test_jsonlib_script.mq5 (12.91 KB)

📎 jsonlib.mqh (34.62 KB)

Source: MQL5 #62735

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录