Pet*_*Fox 11 c# json restsharp
我有一个JSON对象,附带一长串区号.不幸的是,每个区域代码都是Data对象列表中的对象名称.如何创建一个允许RestSharp反序列化内容的类?
以下是我班级现在的样子:
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; }
}
}
Run Code Online (Sandbox Code Playgroud)
这是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"
} [...]
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*ano 18
由于这个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"] });
Run Code Online (Sandbox Code Playgroud)
此代码将生成最能代表数据的匿名类型.但是,匿名类型可以很容易地替换ctor为更普通的DTO类.
输出看起来像这样:
