Mar*_*ark 2 c# serialization json
我正在尝试使用RestSharp来反序列化JSON字符串.然而,我被"555111222"部分的略微非标准结构所困.
编号555111222是设备序列号,因此可以更改,或者JSON响应中可以有多个序列号.
{
"requestid": "42",
"data": {
"555111222": {
"gps_data": [
{
"longitude": -73.952284,
"latitude": 40.755988,
"time": "2016-06-30 09:41:21"
},
{
"longitude": -73.952284,
"latitude": 40.755988,
"time": "2016-06-30 09:41:22"
},
{
"longitude": -73.952284,
"latitude": 40.755988,
"time": "2016-06-30 09:41:23"
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
Json2csharp.com给了我以下内容
public class GpsData
{
public double longitude { get; set; }
public double latitude { get; set; }
public string time { get; set; }
}
public class __invalid_type__555111222
{
public List<GpsData> gps_data { get; set; }
}
public class Data
{
public __invalid_type__555111222 __invalid_name__555111222 { get; set; }
}
public class RootObject
{
public string requestid { get; set; }
public Data data { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何处理我班级中的invalid_type错误.
谢谢
它看起来对我来说,你的Data属性应该是Dictionary<string, GpsDataWrapper>这里GpsDataWrapper仅仅是一个类GpsData属性:
public class GpsData
{
public double longitude { get; set; }
public double latitude { get; set; }
public string time { get; set; }
}
public class GpsDataWrapper
{
public List<GpsData> gps_data { get; set; }
}
public class RootObject
{
public string requestid { get; set; }
public Dictionary<string, GpsDataWrapper> data { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我个人然后将所有这些转换为使用.NET命名约定并应用属性来指定JSON中使用的名称.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |