Json Serealize / Deserialize
подскажите пожалуйста. Как можно записать json вот так ?
{
"Date": "2019-08-01T00:00:00-07:00",
"TemperatureCelsius": 25,
"Summary": "Hot",
"DatesAvailable": [
"2019-08-01T00:00:00-07:00",
"2019-08-02T00:00:00-07:00"
],
"TemperatureRanges": {
"Cold": {
"High": 20,
"Low": -10
},
"Hot": {
""High": 60,
"Low": 20
}
},
"SummaryWords": [
"Cool",
"Windy",
"Humid"
]
}
А так же его прочитать? Сколько искал информации в гугле - ничего понятного для меня я не нашел. Буду рад тем кто подскажет.
Ответы (2 шт):
Автор решения: Dmitry Yalchik
→ Ссылка
Есть удобный сайт для конвертирования JSON в C#
Это будет выглядеть так:
// Создание объекта
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
public class Cold
{
public int High { get; set; }
public int Low { get; set; }
}
public class Hot
{
public int High { get; set; }
public int Low { get; set; }
}
public class Root
{
public DateTime Date { get; set; }
public int TemperatureCelsius { get; set; }
public string Summary { get; set; }
public List<DateTime> DatesAvailable { get; set; }
public TemperatureRanges TemperatureRanges { get; set; }
public List<string> SummaryWords { get; set; }
}
public class TemperatureRanges
{
public Cold Cold { get; set; }
public Hot Hot { get; set; }
}
Автор решения: Faraday
→ Ссылка
Так же можно воспользоваться инструментом quicktype.io. Для такого json выдаёт следующий результат (обрезал технические классы):
public partial class Forecast
{
[JsonProperty("Date")]
public DateTimeOffset Date { get; set; }
[JsonProperty("TemperatureCelsius")]
public long TemperatureCelsius { get; set; }
[JsonProperty("Summary")]
public string Summary { get; set; }
[JsonProperty("DatesAvailable")]
public List<DateTimeOffset> DatesAvailable { get; set; }
[JsonProperty("TemperatureRanges")]
public TemperatureRanges TemperatureRanges { get; set; }
[JsonProperty("SummaryWords")]
public List<string> SummaryWords { get; set; }
}
public partial class TemperatureRanges
{
[JsonProperty("Cold")]
public Cold Cold { get; set; }
[JsonProperty("Hot")]
public Cold Hot { get; set; }
}
public partial class Cold
{
[JsonProperty("High")]
public long High { get; set; }
[JsonProperty("Low")]
public long Low { get; set; }
}
Название класса Cold можно заменить на то, что вам больше подходит