Я использую Newtonsoft для десериализации данных JSON для объекта.C# Newtonsoft JSON свойство карты для элемента массива
My 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; }
}
Я знаю, что могу отметить свойство LoanItem с атрибутом JSONProperty, но мне интересно, если есть способ, я могу добавить вспомогательный элемент массива с условием.
Что-то, может быть, как
[JSONProperty("borrowers[WHERE type = 'BORROWER'].name")]
public string BorrowerName { get; set; }
[JSONProperty("borrowers[WHERE type = 'COBORROWER'].name")]
public string CoBorrowerName { get; set; }
Возможно ли это? Можно ли использовать атрибут JSONProperty?
Нет, это не то, как это работает. –
@JeffMercado, так что мне просто нужно вручную разобрать JSON и сопоставить мои объекты? – James
Вы говорите, что это плохо. «JsonPropertyAttribute» не предназначен для того, чтобы делать то, что вам нужно. Это способ сопоставить простое свойство json с свойством .net. То, что вы предлагаете, намного сложнее, чем любой из API. Если вам нужна более сложная логика, вы должны быть тем, кто ее предоставляет. –