我正在使用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个项目。 1代表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属性吗?
答案 0 :(得分:2)
创建新课程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; } }
}
现在您可以访问BorrowerName和CoborrowerName