您好,我急需一些帮助。我有一个json文件,其中包含json对象数组。我无法弄清楚如何将其反序列化为该对象的列表。
我的JSON在文件中是这种格式-它有数千行,这只是一个示例:
[{
"Rk": 1,
"Gcar": 467,
"Gtm": 1,
"Date": "Apr 6",
"Tm": "CLE",
"Where": "@",
"Opp": "HOU",
"Rslt": "L0-2",
"Inngs": "CG",
"PA": 4,
"AB": 4,
"R": 0,
"H": 0,
"Doubles": 0,
"Triples": 0,
"HR": 0,
"RBI": 0,
"BB": 0,
"IBB": 0,
"SO": 0,
"HBP": 0,
"SH": 0,
"SF": 0,
"ROE": 0,
"GDP": 0,
"SB": 0,
"CS": 0,
"BA": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"BOP": 2,
"aLI": 0.93,
"WPA": -0.093,
"RE24": -0.64,
"DFSDK": 0,
"DFSFD": -1,
"Pos": "Doubles"
},
{
"Rk": 2,
"Gcar": 468,
"Gtm": 2,
"Date": "Apr 8",
"Tm": "CLE",
"Where": "@",
"Opp": "HOU",
"Rslt": "W2-0",
"Inngs": "CG",
"PA": 4,
"AB": 4,
"R": 0,
"H": 2,
"Doubles": 0,
"Triples": 0,
"HR": 0,
"RBI": 0,
"BB": 0,
"IBB": 0,
"SO": 0,
"HBP": 0,
"SH": 0,
"SF": 0,
"ROE": 0,
"GDP": 0,
"SB": 0,
"CS": 0,
"BA": 0.25,
"OBP": 0.25,
"SLG": 0.25,
"OPS": 0.5,
"BOP": 3,
"aLI": 0.71,
"WPA": -0.008,
"RE24": -0.2,
"DFSDK": 6,
"DFSFD": 1.5,
"Pos": "Doubles"
}
]
文件中有142个这些对象。我试图反序列化该对象无济于事。在这一点上,我准备从头开始,我只是在寻找将这些数据转换为可用对象的方向?
谢谢。
Newtonsoft提供了一种方法。
Try using
Newtonsoft.Json
library.Add this https://www.nuget.org/packages/Newtonsoft.Json/7.0.1 on your project.
This is the link for my solution: https://dotnetfiddle.net/eqJXTy
然后:
很高兴为您服务!
这就是我最终完成它的方式。我不确定上述答案是否适用于同一文件中的多个JSON对象。
This is very simple to do using Newtonsoft.JSON and there is a page in the documentation covering how to deserialize an object.
从文档页面获取:
您可以使用Visual Studio 2013、2015从json创建模型类,我做到了,并且很好地解析了JSON。 要使用此功能,剪贴板中必须具有JSON / XML,将光标置于.cs文件中,然后使用选项编辑>选择性粘贴>粘贴JSON AS类
查看生成的代码:
在运行时要将JSON反序列化为从Visual Studio创建的此对象中,可以使用Newtonsoft.Json,可以使用nuget通过以下命令进行安装:
现在,您可以使用静态类JsconCovert中的gerenric方法DeserializedObject对其进行反序列化,如下所示: