gpt4 book ai didi

C# RestSharp - 反序列化非标准 JSON

转载 作者:行者123 更新时间:2023-12-03 03:29:00 25 4
gpt4 key购买 nike

我正在尝试使用 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"
}
]
}
}
}

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; }
}

我不确定如何处理类(class)中的 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; }
}

我个人会将所有这些转换为使用 .NET 命名约定,并应用属性来指定 JSON 中使用的名称。

关于C# RestSharp - 反序列化非标准 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38178201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com