C# Newtonsoft JSON 将属性映射到数组子项



我正在使用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; } }
}

现在您可以访问借款人姓名和共同借款人姓名

相关内容

  • 没有找到相关文章