У меня есть файл JSON, содержащий такие строки:
{"id":"0258","name":"Canterbury","coordinates":[1.07992,51.27904]}
Элемент coordinates
- это географические c координаты города. Однако он хранится в виде массива, который всегда содержит [долготу, широту].
Я хочу десериализовать эти записи в C# POCO-классы, которые определены следующим образом:
public sealed class City
{
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("coordinates")]
public GeographicLocation Location { get; set; }
}
public sealed class GeographicLocation
{
public GeographicLocation(double latitude, double longitude)
{
Latitude = latitude;
Longitude = longitude;
}
public double Latitude { get; private set; }
public double Longitude { get; private set; }
}
Я думаю, вы можете видеть, куда я иду с этим.
Есть ли способ аннотировать эти классы так, чтобы источник JSON правильно десериализовался в мой желаемый граф объектов?
I В настоящее время я использую System.Text.Json
, но переключился бы на Newtonsoft.Json
в одно мгновение, если у него есть лучшее решение.
Уточнение
Я знаю, как десериализовать JSON в класс, где есть соответствие между JSON элементами и свойствами класса. Здесь основная проблема заключается в том, что исходный файл JSON содержит 2-элементный массив, который я хотел бы получить в свойствах моего десериализованного класса, а не в одном свойстве массива. Я не знаю, как это сделать sh.