,等我拿到手,我会做一个比较基准。
我比较了 4 个库的速度,包括 MQL5Book 的 ToyJson3。作为 json 样本,我使用了 Binance 对 "exchangeInfo "的响应,大小为 768 Kb。当库从字符串中读取时,会对其进行整体解析,然后我选择一个符号并读取其所有数据。如此循环 100 次。
MetaTrader 5 x64 build 5370 started for MetaQuotes Ltd. Windows 10 build 19045, 4 x AMD Ryzen 3 PRO 3200 GE w/ Radeon Vega, AVX2, 6 / 13 Gb memory, 241 / 427 Gb disk, UAC, GMT+3 cpu='AVX2 + FMA3'
结果(查询处理时间):
99.5 毫秒 - JAson 1.12(https://www.mql5.com/zh/code/13663)
85.5 毫秒 - JAson 1.13
46.9 毫秒 - ToyJson3 (https://www.mql5.com/ru/forum/459079/page4#comment_57805801)
41 ms - JSON(https://www.mql5.com/zh/code/53107)
1132 毫秒 - JsonNode(该库)
38 ms - 我基于 JSON 的实现
PS: 很久以前,这里似乎出现过另一个非常精简的库。但我已经记不清了。
PPS:我没有发布用于测量的脚本。代码的形式完全不雅观。
我比较了 4 个库的速度,包括 MQL5Book 的 ToyJson3。作为 json 样本,我使用了 Binance 对 "exchangeInfo "的响应,大小为 768 Kb。当库从字符串中读取时,会对其进行整体解析,然后我选择一个符号并读取其所有数据。如此循环 100 次。
结果(查询处理时间):
99.5 ms - JAson 1.12(https://www.mql5.com/zh/code/13663)
85.5 ms - JAson 1.13
46.9 ms - ToyJson3 (https://www.mql5.com/ru/forum/459079/page4#comment_57805801)
41 ms - JSON(https://www.mql5.com/zh/code/53107)
1132 毫秒 - JsonNode(本库)
38 ms - 我基于 JSON 的实现
PS: 很久以前,这里似乎出现过另一个非常精简的库。但我已经记不清了。
PPS:我没有发布用于测量的脚本。代码的形式完全不雅观。
请公布 json 字符串或文件。
https://fapi.binance.com/fapi/v1/exchangeInfo
https://eapi.binance.com/eapi/v1/exchangeInfo
778 KB(796 729 字节)。
新文章 JSON 从入门到精通: 创建自己的 MQL5 版本 JSON 解读器已发布:
本文旨在演示如何创建自己的 MQL5 版本 JSON 解读器,来填补这一空白。沿此道路,我们将探讨解析 JSON 的基本概念,脚步遍及创建拥有处理不同 JSON 元素类型(如对象、数组、字符串、数字、布尔、和空值)能力的灵活类结构。我们的最终目标赋予您舒适地解析 JSON 字符串,并访问或修改其中的数据,所有这些都来自您的 MetaTrader 5 环境的便利。
我们将遵循曾看过的其它 MQL5 相关文章的类似结构,但特别专注 JSON 的解析和用法。这篇文章将分为五个主要章节:概述(您正在阅读的部分)、深入探讨 JSON 基础及其在 MQL5 中如何适配、从零开始构建一款基础 JSON 解析器的分步指南、JSON 处理的高级功能探索,最后是综合的代码清单、加上结论感想。
作者:Sahil Bagdi