我正在使用Newtonsoft将JSON数据反序列化为对象。
我的 JSON 看起来像这样:
{
"id": "4aa50d01-41bd-45e3-803e-f479a948acf1",
"referenceNumber": "120064",
"status": "Application in Progress",
"borrowers": [
{
"name": "John Doe",
"type": "BORROWER"
},
{
"name": "Jane Doe",
"type": "COBORROWER"
}
],
"propertyAddress": {
"zipCodePlusFour": ""
}
}
借款人数组最多可以有 2 个项目。 一个带有type == "BORROWER"
,另一个带有type == "COBORROWER"
我有一个正在反序列化的 LoanItem 类。
public class LoanItem
{
public string referenceNumber { get; set; }
public string status { get; set; }
}
我知道我可以使用 JSONProperty 属性标记 LoanItem 属性,但我想知道是否有办法添加带有条件的数组子项。
可能像
[JSONProperty("borrowers[WHERE type = 'BORROWER'].name")]
public string BorrowerName { get; set; }
[JSONProperty("borrowers[WHERE type = 'COBORROWER'].name")]
public string CoBorrowerName { get; set; }
这可能吗?我可以使用 JSONProperty 属性吗?
创建一个新的类Borrower
public class Borrower
{
string Name { get; set; }
string Type { get; set; }
}
将您的 LoanItem 类更新为此
public class LoanItem
{
public string referenceNumber { get; set; }
public string status { get; set; }
public List<Borrower> Borrowers {get;set;}
public string BorrowerName { get { return Borrowers.Where(x=>x.Type == "BORROWER").FirstOrDefault().Name; }
public string CoBorrowerName { get { return return Borrowers.Where(x=>x.Type == "COBORROWER").FirstOrDefault().Name; } }
}
现在您可以访问借款人姓名和共同借款人姓名