程序库: JSON Serialization and Deserialization (native MQL) - 页 16 1...9101112131415161718 新评论 Carl Schreiber 2022.12.21 18:49 #151 您已经知道引用WebRequest() 的 示例--以及它如何将加载的数据转化为可读的内容? 只有这样,您才能分析Jason 文本。 Dokumentation zu MQL5: Netzwerkfunktionen / WebRequest www.mql5.com WebRequest - Netzwerkfunktionen - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5 Aleksi-Trader 2022.12.21 20:22 #152 Carl Schreiber #:您已经知道引用WebRequest() 的 示例--以及它如何将加载的数据转化为可读数据?只有这样,您才能分析Jason 文本。好的,我现在稍微改了一下,这对我帮助很大。 打印出来的信息是2022.12.21 20:20:48.718 jason_test (GER40,H1) 文件已成功下载,大小为 17 字节。对我来说,这意味着有一个来自服务器的响应,我只需对其进行分析。而且还创建了一个名为 url 的文件,其中包含了我正在寻找的答案。 感谢卡尔的帮助 Qiang Li 2023.01.02 10:58 #153 您能更新添加一些功能吗? JAval j1; j1.Add(1); j1["a"] = 1; j1["b"] = 2; 能否添加此功能? j1.Del("a"); j1.Pop(); j1.shift(); j1.sort(); j1.sort(); Ivan Titov 2023.05.25 13:17 #154 下一次更新后,它就停止工作了。在日志中--有错误的行号: Build 3756. Nikita Chernyshov 2023.07.10 11:53 #155 结构如下 [ { "ticket":671073362 }, { "票":111111111 } ] 我想获得 2 个项目。第一张票和第二张票。 string js = "{\"ticket\":671073362\"},{\"ticket\":111111111}"; jv.Deserialize(js); Print( jv["ticket"].ToStr()); 这样我只能访问第一张票。如果有第二张票和后续票,如何访问它们? 在https://www.mql5.com/ru/forum/63015/page3#comment_2844920 上讨论过这个问题,但作者将这种结构封装在一个命名数组中,就像这样。 string js = "{\"array\":[{\"ticket\":671073362},{\"ticket\":111111111}]}"; jv.Deserialize(js); for(int i = 0; i < ArraySize(jv["array"].m_e); i++) { Print(jv["array"].m_e[i]["ticket"].ToInt()); } 但如果我不能更改 json 结构,我该怎么办?如何获取这个数组并浏览其中的元素? Stanislav Korotky 2023.07.10 20:51 #156 Nikita Chernyshov #:有这样一种结构[{"ticket":671073362},{"ticket":111111111}]... 指定的字符串与开头给出的结构不匹配,不是有效的 json 字符串: string js = "{\"ticket\":671073362\"},{\"ticket\":111111111}"; 应该是有效的: string js = "[{\"ticket\":671073362},{\"ticket\":111111111}]"; 该注释只针对 json-a 的规范,而不考虑它在特定库中是如何实现的。我使用的是另一个库。 Nikita Chernyshov 2023.07.10 21:25 #157 Stanislav Korotky #:指定的字符串与开头给出的结构不匹配,也不是有效的 json 字符串:应为该注释只针对 json-a 的规范,而不考虑它在特定库中是如何实现的。我使用的是另一个库。 嗯,没错,它缺少方格,但对方格没有帮助)。 [删除] 2023.10.12 09:14 #158 类函数宏 'DEBUG_PRINT_KEY' 的参数过多 JAson.mqh 391 40 if (type != jtUNDEF) { DEBUG_PRINT_KEY(); return false; } // 如果值已经有了类型,则会出错 参见宏 "DEBUG_PRINT_KEY "的声明 JAson.mqh #ifdef DEBUG #define DEBUG_PRINT_KEY() Print(key+" "+string(__LINE__)) #else #define DEBUG_PRINT_KEY() #endif 在最新的 mql5 编译中出现此警告。 知道如何修复吗? Manuel Alejandro Cercos Perez 2023.10.12 11:31 #159 Arpit T #: 有办法解决吗? 删除括号 if (type != jtUNDEF) { DEBUG_PRINT_KEY; return false; } // 如果值已经有了类型,则会出错 #ifdef DEBUG #define DEBUG_PRINT_KEY Print(key+" "+string(__LINE__)) #else #define DEBUG_PRINT_KEY #endif [删除] 2023.10.12 12:28 #160 Manuel Alejandro Cercos Perez #:去掉括号 已修复,谢谢 我在此附上修复后的代码 附加的文件: JAson_1.13.mqh 45 kb 1...9101112131415161718 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
您已经知道引用WebRequest() 的 示例--以及它如何将加载的数据转化为可读的内容?
只有这样,您才能分析Jason 文本。
您已经知道引用WebRequest() 的 示例--以及它如何将加载的数据转化为可读数据?
只有这样,您才能分析Jason 文本。
好的,我现在稍微改了一下,这对我帮助很大。
打印出来的信息是
2022.12.21 20:20:48.718 jason_test (GER40,H1) 文件已成功下载,大小为 17 字节。
对我来说,这意味着有一个来自服务器的响应,我只需对其进行分析。而且还创建了一个名为 url 的文件,其中包含了我正在寻找的答案。
感谢卡尔的帮助您能更新添加一些功能吗?
JAval j1; j1.Add(1); j1["a"] = 1; j1["b"] = 2;能否添加此功能?
j1.Del("a"); j1.Pop(); j1.shift(); j1.sort(); j1.sort();下一次更新后,它就停止工作了。在日志中--有错误的行号:
Build 3756.
结构如下
[
{
"ticket":671073362
},
{
"票":111111111
}
]
我想获得 2 个项目。第一张票和第二张票。
这样我只能访问第一张票。如果有第二张票和后续票,如何访问它们?
在https://www.mql5.com/ru/forum/63015/page3#comment_2844920 上讨论过这个问题,但作者将这种结构封装在一个命名数组中,就像这样。
但如果我不能更改 json 结构,我该怎么办?如何获取这个数组并浏览其中的元素?
有这样一种结构
[
{
"ticket":671073362
},
{
"ticket":111111111
}
]
...
指定的字符串与开头给出的结构不匹配,不是有效的 json 字符串:
应该是有效的:
该注释只针对 json-a 的规范,而不考虑它在特定库中是如何实现的。我使用的是另一个库。
指定的字符串与开头给出的结构不匹配,也不是有效的 json 字符串:
应为
该注释只针对 json-a 的规范,而不考虑它在特定库中是如何实现的。我使用的是另一个库。
嗯,没错,它缺少方格,但对方格没有帮助)。
参见宏 "DEBUG_PRINT_KEY "的声明 JAson.mqh
在最新的 mql5 编译中出现此警告。
知道如何修复吗?
有办法解决吗?
删除括号
去掉括号
已修复,谢谢
我在此附上修复后的代码