我有以下从远程 API 返回的 JSON(我无法修改返回的 JSON)
{
"APITicket": {
"location": "SOMEVALUE",
"ticket": "SOMEVALUE"
}
}
现在使用 JSON.Net 将其转换为模型,我必须创建 2 个模型。
public class TicketModel
{
public string location { get; set; }
public string ticket { get; set; }
}
public class TicketContainer
{
public TicketModel APITicket { get; set; }
}
然后做一些类似...
var myObject = JsonConvert.DeserializeObject<TicketContainer>(this.JSONResponse);
这很有效 - 当我对 API 进行大约 50 次调用并且真的不想为每个调用创建第二个“容器”时,我的问题就出现了。有没有办法将上面的示例直接绑定(bind)到 TicketModel?
最佳答案
你可以这样做:
var json = @"
{
'APITicket': {
'location': 'SOMEVALUE',
'ticket': 'SOMEVALUE'
}
}";
//Parse the JSON:
var jObject = JObject.Parse(json);
//Select the nested property (we expect only one):
var jProperty = (JProperty)jObject.Children().Single();
//Deserialize it's value to a TicketModel instance:
var ticket = jProperty.Value.ToObject<TicketModel>();
关于c# - JSON.Net 将内部对象转换为 C# 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17566368/