1

подскажите пожалуйста. Как можно записать json вот так ?

{
 "Date": "2019年08月01日T00:00:00-07:00",
 "TemperatureCelsius": 25,
 "Summary": "Hot",
 "DatesAvailable": [
 "2019年08月01日T00:00:00-07:00",
 "2019年08月02日T00:00:00-07:00"
 ],
 "TemperatureRanges": {
 "Cold": {
 "High": 20,
 "Low": -10
 },
 "Hot": {
 "High": 60,
 "Low": 20
 }
 },
 "SummaryWords": [
 "Cool",
 "Windy",
 "Humid"
 ]
}

А так же его прочитать? Сколько искал информации в гугле - ничего понятного для меня я не нашел. Буду рад тем кто подскажет.

Vitalizzare
3,7492 золотых знака12 серебряных знаков43 бронзовых знака
задан 24 июл. 2022 в 13:19
4
  • Зачем двойные кавычки? Разве такое разрешено стандартом JSON? Commented 24 июл. 2022 в 13:23
  • Так не разрешено. Commented 24 июл. 2022 в 13:26
  • 1
    Экранируйте слышами так \" и все будет хорошо Commented 24 июл. 2022 в 13:29
  • Кроме двойной кавычки (что я считаю опечаткой с вашей стороны), тут других проблем нету, простая структура классов, не более. Так что, возникает вопрос - где ваши попытки решения этой задачи? Или вы пытались найти именно под вашу структуру решения, не разбираясь как работает сам JSON? Ну чтож, все просто: "Name": value - это свойство (public string Name {get;set;}) например. { ... } - класс, содержащий в себе свойства. Ну а [ ... ] - простой массив/коллекция. Commented 24 июл. 2022 в 14:03

2 ответа 2

1

Есть удобный сайт для конвертирования 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; }
 }
ответ дан 8 авг. 2022 в 4:30
1

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

ответ дан 25 нояб. 2025 в 16:20

Ваш ответ

Черновик сохранён
Черновик удалён

Зарегистрируйтесь или войдите

Регистрация через Google
Регистрация через почту

Отправить без регистрации

Необходима, но никому не показывается

Отправить без регистрации

Необходима, но никому не показывается

Нажимая «Отправить ответ», вы соглашаетесь с условиями пользования и подтверждаете, что прочитали политику конфиденциальности.

Начните задавать вопросы и получать на них ответы

Найдите ответ на свой вопрос, задав его.

Задать вопрос

Изучите связанные вопросы

Посмотрите похожие вопросы с этими метками.