程序库: JSON Serialization and Deserialization (native MQL) - 页 2 123456789...18 新评论 Dmitry Fedoseev 2016.03.31 10:16 #11 Виктор Василюк: 我们现在该怎么办? 还有其他解决方法吗? 不要寻找放之四海而皆准的解决方案。为每个问题寻找不同的解决方案。 --- 2016.04.02 10:19 #12 Виктор Василюк:感谢您提供的库,但其中存在一些问题。我不知道如何使用该库粘贴数组?例如string a[] = {"1", "2", "3"}; int b[] = {1, 2, 3}; double c[] = {1.1, 2.9, 3.03}; 问题出现在声明 CJAVal 类型变量的 层面上。使用 CJAVal primer(jtARRAY, a); 并没有帮助。请补充或扩展示例文件 ?????。你好,维克多、感谢您的评论。的确,该库版本没有明确添加数组元素的函数。程序库已经更新。1.03 版将在验证后发布在代码库中。您可以下载本帖所附的 1.03 版。数组的工作示例: string a[] = {"1", "2", "3"}; int b[] = {1, 2, 3}; double c[] = {1.1, 2.9, 3.03}; CJAVal js; js["a"].Add(a[0]); js["a"].Add(a[1]); js["a"].Add(a[2]); js["b"].Add(b[0]); js["b"].Add(b[1]); js["b"].Add(b[2]); js["c"].Add(c[0]); js["c"].Add(c[1]); js["c"].Add(c[2]); string t=js.Serialize(); Print(t); // Вывод {"a":["1","2","3"],"b":[1,2,3],"c":[1.10000000,2.90000000,3.03000000]} js.Clear(); js.Deserialize(t); Print(js["a"].m_e[2].ToStr()); // Вывод 3 附加的文件: JAson.mqh 16 kb Denis Kirichenko 2016.09.23 17:04 #13 阿列克谢,感谢您的辛勤劳动!非常必要的图书馆我有这样一个实际任务。有一个数据库类型的 CJAVal 对象。还有 2 个订单属性 类型的 CJAVal 对象。我希望数据库包含这些订单的数据。大概是这样的//--- 对象 CJAVal jv_database, // DB jv_order_1, // 订单 1 jv_order_2; // 担保书 2 //--- DB jv_database["Result"]="Success"; jv_database["ErrorMessage"]="No error"; // jv_database["Response"][2]={jv_order_1,jv_order_2}; // WANTED. //--- 命令 1 jv_order_1["symbol"]="EURUSD"; jv_order_1["ticket"]="1505254"; jv_order_1["open_price"]="1.1065"; jv_order_1["open_time"]="19.09.2016 11:53:31"; //--- 权证 2 jv_order_2["symbol"]="USDJPY"; jv_order_2["ticket"]="1505321"; jv_order_2["open_price"]="100.02"; jv_order_2["open_time"]="20.09.2016 14:12:53";我希望响应字段是一个订单属性数组。这样的记录 jv_database["Response"][idx]应返回一个指针或订单对象本身。请提供建议。谢谢 --- 2016.09.24 08:34 #14 Dennis Kirichenko: 这样的记录 jv_database["Response"][idx]应该返回一个指针或订单对象本身。我是否正确理解了我们所说的按数字索引的引用?是否应该在索引 [idx] 处返回指向DB["响应"] 数组中对象的指针?我认为可以。---但是通过 {x1, x2} 类型进行初始化--可能做不到。在我的记忆中,这种类型的初始化只有在变量声明 时才能使用,即作为构造函数的一种形式。但不能在创建的数组中设置值。这就是你必须这样做的原因:jv_database["Response"][0]=jv_order_1; jv_database["Response"][1]=jv_order_2; Denis Kirichenko 2016.09.26 12:38 #15 o_O:我是否正确理解了我们所说的按数字索引处理?DB["响应"] 数组中的对象指针是否应该按索引 [idx] 返回?我认为可以。 是的,没错。 Denis Kirichenko 2016.09.26 12:43 #16 另一个问题。有一个订单对象:CJAVal order; order["symbol"]; order["type"]; order["lot"]; order["price_open"]; order["price_close"]; order["stop_loss"]; order["take_profit"];我们读取的源文件行包含多个订单的信息。事先并不知道有多少个订单。如何在不指定订单 对象大小的情况下从字符串中读取所有信息? --- 2016.09.26 13:06 #17 我们说的是哪条线? Denis Kirichenko 2016.09.26 13:22 #18 o_O:我们说的是什么字符串? 包含数据库中所有订单数据的字符串(来自服务器)。 --- 2016.09.26 13:25 #19 答案错误)。我需要知道你到底想解析什么,是带有数组的 json 还是你自己编造的。这很难猜。 Denis Kirichenko 2016.09.26 13:34 #20 就是这种绳子:{ "symbol": "USDJPY", "type": "Buy", "lot": 0.5, "price_open": 102.36, "price_close": 102.44, "stop_loss": 99.25, "take_profit": 103.25 }, { "symbol": "EURUSD", "type": "Sell", "lot": 0.2, "price_open": 1.1044, "price_close": 1.1252, "stop_loss": 1.1434, "take_profit": 1.0922 } } 123456789...18 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我们现在该怎么办? 还有其他解决方法吗?
感谢您提供的库,但其中存在一些问题。
我不知道如何使用该库粘贴数组?
例如
问题出现在声明 CJAVal 类型变量的 层面上。使用 CJAVal primer(jtARRAY, a); 并没有帮助。
请补充或扩展示例文件 ?????。
你好,维克多、
感谢您的评论。的确,该库版本没有明确添加数组元素的函数。
程序库已经更新。
1.03 版将在验证后发布在代码库中。
您可以下载本帖所附的 1.03 版。
数组的工作示例:
阿列克谢,感谢您的辛勤劳动!非常必要的图书馆
我有这样一个实际任务。
有一个数据库类型的 CJAVal 对象。还有 2 个订单属性 类型的 CJAVal 对象。
我希望数据库包含这些订单的数据。
大概是这样的
我希望响应字段是一个订单属性数组。
这样的记录 jv_database["Response"][idx]应返回一个指针或订单对象本身。
请提供建议。谢谢
这样的记录 jv_database["Response"][idx]应该返回一个指针或订单对象本身。
我是否正确理解了我们所说的按数字索引的引用?是否应该在索引 [idx] 处返回指向DB["响应"] 数组中对象的指针?
我认为可以。
---
但是通过 {x1, x2} 类型进行初始化--可能做不到。在我的记忆中,这种类型的初始化只有在变量声明 时才能使用,即作为构造函数的一种形式。但不能在创建的数组中设置值。
这就是你必须这样做的原因:
我是否正确理解了我们所说的按数字索引处理?DB["响应"] 数组中的对象指针是否应该按索引 [idx] 返回?
我认为可以。
另一个问题。有一个订单对象:
我们读取的源文件行包含多个订单的信息。事先并不知道有多少个订单。
如何在不指定订单 对象大小的情况下从字符串中读取所有信息?
我们说的是哪条线?
我们说的是什么字符串?
答案错误)。
我需要知道你到底想解析什么,是带有数组的 json 还是你自己编造的。这很难猜。
就是这种绳子:
{ "symbol": "USDJPY", "type": "Buy", "lot": 0.5, "price_open": 102.36, "price_close": 102.44, "stop_loss": 99.25, "take_profit": 103.25 }, { "symbol": "EURUSD", "type": "Sell", "lot": 0.2, "price_open": 1.1044, "price_close": 1.1252, "stop_loss": 1.1434, "take_profit": 1.0922 } }