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 можно заменить на то, что вам больше подходит

→ Ссылка