如何轻松地将此JSON反序列化为OrderDto C#类?有没有办法以某种方式用属性做到这一点?
JSON:
{
"ExternalId": "123",
"Customer": {
"Name": "John Smith"
}
...
}
C#:
public class OrderDto
{
public string ExternalId { get; set; }
public string CustomerName { get; set; }
...
}
我尝试使用JsonProperty属性,但无法使其正常工作。我的想法是写一个注释,如:
[JsonProperty("Customer/Name")]
public string CustomerName { get; set; }
但它似乎并没有起作用。有任何想法吗?谢谢! :)
答案 0 :(得分:4)
您的课程应如下所示:
public class OrderDto
{
public string ExternalId { get; set; }
public Customer Customer { get; set;}
}
public class Customer
{
public string CustomerName { get; set; }
}
将来一个好主意是采用一些现有的JSON并使用http://json2csharp.com/
答案 1 :(得分:1)
您可以创建另一个嵌套其余属性的类,如下所示:
public class OrderDto
{
public string ExternalId { get; set; }
public Customer Customer { get; set; }
}
public class Customer
{
public string Name { get; set; }
}
原因是因为Name是JSON数据中Customer对象的嵌套属性。
如果JSON名称与您希望在代码中提供的名称不同,则通常使用[JsonProperty("")]
代码,即
[JsonProperty("randomJsonName")]
public string ThisIsntTheSameAsTheJson { get; set; }