【发布时间】:2020-04-09 20:41:02
【问题描述】:
我正在将动态 JSON 对象转换为 C# 中的 Excel。我已经尝试了以下步骤。 从数据库中,我得到以下响应作为字符串。
[ {"ResourceName":"AH","ProjectID":1,"WeekNo":2,"02 Dec 2019":7.00,"03 Dec 2019":7.50,"04 Dec 2019":7.00,"05 Dec 2019":7.50,"06 Dec 2019":7.00},{"ResourceName":"CK","ProjectID":1,"WeekNo":2,"02 Dec 2019":6.00,"03 Dec 2019":5.00,"04 Dec 2019":3.00,"05 Dec 2019":2.00,"06 Dec 2019":5.00}, {"ResourceName":"AH","ProjectID":1,"WeekNo":3,"09 Dec 2019":6.00,"10 Dec 2019":7.50,"11 Dec 2019":7.00,"12 Dec 2019":7.50,"13 Dec 2019":8.00},{"ResourceName":"CK","ProjectID":1,"WeekNo":3,"09 Dec 2019":6.00,"10 Dec 2019":4.00,"11 Dec 2019":null,"12 Dec 2019":5.00,"13 Dec 2019":4.00},{"ResourceName":"SL","ProjectID":1,"WeekNo":3,"09 Dec 2019":null,"10 Dec 2019":1.50,"11 Dec 2019":null,"12 Dec 2019":1.50,"13 Dec 2019":0.50}, {"ResourceName":"AH","ProjectID":1,"WeekNo":4,"16 Dec 2019":7.00},{"ResourceName":"CK","ProjectID":1,"WeekNo":4,"16 Dec 2019":3.00} ]
我需要将上述字符串转换为 JSON 并执行循环操作,以便为 Excel 创建设置标题和详细信息值。我使用下面的方法创建了一个dynamic 对象。
资源名称和动态日期应作为列标题。由于date 值是动态的,因此无法创建模型。
using System.Web.Helpers;
dynamic jsonObject = Json.Decode(response);
我能够从 QuickWatch 中提取值,但是,输出仅在运行时生成,如下所示。
(new System.Collections.Generic.Mscorlib_DictionaryDebugView<string, object>(((System.Web.Helpers.DynamicJsonObject)((System.Web.Helpers.DynamicJsonArray)jsonObject)._arrayValues[0])._values).Items[0]).Key
有没有办法循环遍历动态数组的内容?
【问题讨论】:
-
你应该使用 JSON.NET 并传递一个字典示例here
-
@styx JSON 字段是动态的。所以无法创建模型。