C#RestSharp-反序列化非标准JSON
我试图使用RestSharp反序列化JSON字符串。然而,我发现“55511122”部分周围的结构有点不标准 55511122是一个设备序列号,因此可以更改,或者JSON响应中可以有多个序列号C#RestSharp-反序列化非标准JSON,c#,json,serialization,C#,Json,Serialization,我试图使用RestSharp反序列化JSON字符串。然而,我发现“55511122”部分周围的结构有点不标准 55511122是一个设备序列号,因此可以更改,或者JSON响应中可以有多个序列号 { "requestid": "42", "data": { "555111222": { "gps_data": [ { "longitude": -73.952284, "latitude"
{
"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"
}
]
}
}
}
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; }
}
公共类GpsData
{
公共双经度{get;set;}
公共双纬度{get;set;}
公共字符串时间{get;set;}
}
公共类\uuuu无效\u类型\uuuuu 55511122
{
公共列表gps_数据{get;set;}
}
公共类数据
{
公共uuu无效uu类型uuu 55511122 uuu无效uuu名称uuuuu 55511122{get;set;}
}
公共类根对象
{
公共字符串requestid{get;set;}
公共数据数据{get;set;}
}
我不知道如何处理我班上的无效类型错误
谢谢在我看来,您的
数据
属性应该是字典
,其中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; }
}
公共类GpsData
{
公共双经度{get;set;}
公共双纬度{get;set;}
公共字符串时间{get;set;}
}
公共类GpsDataWrapper
{
公共列表gps_数据{get;set;}
}
公共类根对象
{
公共字符串requestid{get;set;}
公共字典数据{get;set;}
}
然后我个人会将所有这些转换为使用.NET命名约定,并应用属性来指定JSON中使用的名称。您需要访问JSON响应中的不同序列号吗?