Я хочу десериализовать эти json данные в Result class и поместить 3 значения книги (FirstBook, SecondBook, ThirdBook) в IEnumerable :
[
{
"Id": 1,
"FirstBook": "B1",
"SecondBook": "B2",
"ThirdBook": "B3",
...
},
{
"Id": 2,
"FirstBook": "BB1",
"SecondBook": "BB2",
"ThirdBook": "BB3",
...
}
]
Класс результата:
public class Result
{
public int Id { get; set;}
[JsonConverter(typeof(BooksJsonConverter))]
public IEnumerable<Book> Books { get; set; }
}
Класс книги:
public class Book
{
public string Name { get; set; }
}
Десериализовать его в класс Результат , содержащий IEnumerable <Книга>
JsonConvert.DeserializeObject<IEnumerable<Result>>(json);
Я думаю, что я должен создать JsonConverter:
public class BooksJsonConverter : JsonConverter<IEnumerable<Book>>
{
public override IEnumerable<Book> ReadJson(JsonReader reader, Type objectType, IEnumerable<Book> existingValue, bool hasExistingValue, JsonSerializer serializer)
{
//What should i write here?
return new List<Book>();
}
public override void WriteJson(JsonWriter writer, Book value, JsonSerializer serializer)
{
throw new NotImplementedException();
}
}
В этой ситуации Read Json из BooksJsonConverter не вызывается, но когда я добавляю JsonProperty, приписываю, что он вызывается, но я не знаете, что мне писать внутри Читать Json:
public class Result
{
public int Id { get; set;}
[JsonConverter(typeof(BooksJsonConverter))]
[JsonProperty("FirstBook")]
public IEnumerable<Book> Books { get; set; }
}
Вопрос в том, как мне преобразовать FirstBook, SecondBook, ThirdBook из json в IEnumerable внутри класса результатов?