gpt4 book ai didi

c# - 使用动态对象反序列化 JSON

转载 作者:可可西里 更新时间:2023-11-01 08:37:41 26 4
gpt4 key购买 nike

我有一个带有一长串区号的 JSON 对象。不幸的是,每个区号都是数据对象列表中的对象名称。如何创建允许 RestSharp 反序列化内容的类?

这是我的类(class)现在的样子:

public class phaxioResponse
{
public string success { get; set; }
public string message { get; set; }
public List<areaCode> data { get; set; }

public class areaCode
{
public string city { get; set; }
public string state { get; set; }
}
}

这是 JSON 内容:

{
success: true
message: "277 area codes available."
data: {
201: {
city: "Bayonne, Jersey City, Union City"
state: "New Jersey"
}
202: {
city: "Washington"
state: "District Of Columbia"
} [...]
}

最佳答案

由于这个 JSON 不是 C# 友好的,我不得不做一些 hackery 以使其正确显示。不过,结果还是很不错的。

var json = JsonConvert.DeserializeObject<dynamic>(sampleJson);
var data = ((JObject)json.data).Children();
var stuff = data.Select(x => new { AreaCode = x.Path.Split('.')[1], City = x.First()["city"], State = x.Last()["state"] });

此代码将生成最能代表数据的匿名类型。但是,对于更普通的 DTO 类,匿名类型可以很容易地替换为 ctor

输出看起来像这样:

Deserialization Output

关于c# - 使用动态对象反序列化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23505096/

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