簡體   English   中英

C#Newtonsoft JSON映射屬性到數組子項

[英]C# Newtonsoft JSON map property to array sub item

我正在使用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屬性嗎?

創建一個新的班級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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM