【发布时间】:2017-02-13 14:25:38
【问题描述】:
我的问题可能读起来很长,但我相信对于熟悉 Visual Studio 环境的人来说,解决方案非常简单。我很安静,这不是我们的研究领域,所以我们遇到了一些麻烦。我很乐意得到任何帮助!
我遇到了以下问题:
我正在尝试反序列化以下 JSON 格式:
[
{
"id": 1,
"active": true,
"air_drop_pos": {
"latitude": 38.141833,
"longitude": -76.425263
},
"fly_zones": [
{
"altitude_msl_max": 200.0,
"altitude_msl_min": 100.0,
"boundary_pts": [
{
"latitude": 38.142544,
"longitude": -76.434088,
"order": 1
},
{
"latitude": 38.141833,
"longitude": -76.425263,
"order": 2
},
{
"latitude": 38.144678,
"longitude": -76.427995,
"order": 3
}
]
}
],
"home_pos": {
"latitude": 38.14792,
"longitude": -76.427995
},
"mission_waypoints": [
{
"altitude_msl": 200.0,
"latitude": 38.142544,
"longitude": -76.434088,
"order": 1
}
],
"off_axis_target_pos": {
"latitude": 38.142544,
"longitude": -76.434088
},
"emergent_last_known_pos": {
"latitude": 38.145823,
"longitude": -76.422396
},
"search_grid_points": [
{
"altitude_msl": 200.0,
"latitude": 38.142544,
"longitude": -76.434088,
"order": 1
}
]
}
]
使用命令: 编辑 -> 选择性粘贴 -> 将 JSON 粘贴为类 我已经创建了接收所有信息所需的类。
然后在 C# 中我使用以下代码来反序列化数据:
using (webResponse3 = (HttpWebResponse)webRequest3.GetResponse())
{
using (var stream = webResponse3.GetResponseStream())
{
using (var reader = new StreamReader(stream))
{
RootobjectMissions outObject1 = (RootobjectMissions)new JsonSerializer().Deserialize(reader, typeof(RootobjectMissions));
}
}
}
我收到以下错误:
将格式更改为正确格式的可能方法是什么?源 JSON 看起来是一个进入数组类的数组。可能是什么问题?
感谢您的帮助!
【问题讨论】:
-
能否请您将异常消息复制粘贴为文本并提供类定义代码。
-
尝试 json2csharp.com 来生成你的类,这是反序列化失败的常见原因。
-
您尚未提供您尝试反序列化的 C# 对象,因此我们无法提供帮助。获得一组真正的 JSON 的最简单方法是复制您的 JSON 并使用 Visual Studio 将 JSON 粘贴为类。
标签: c# json serialization