Имя поля Json с косой чертой - PullRequest
       5

Имя поля Json с косой чертой

0 голосов
/ 24 октября 2019

Мне нужно десериализовать json в классы C #, но во многих именах полей json есть косая черта.

Я искал на этом сайте, чтобы узнать, задавал ли кто-нибудь еще подобный вопрос, но ничего не пришлоup.

json:

  {
    "start": "2019-10-24T10:37:27.590Z",
    "end": "2019-10-24T11:00:00.000Z",
    "requests/duration": {
      "avg": 3819.55
    }
  }

c #

class Metrics
{
   public DateTime start = DateTme.MinValue;
   public DateTime end = DateTme.MinValue;
   public RequestsDuration requestsduration = null;
}

class RequestsDuration
{
   public double avg = 0.0;
}

...
Metrics data = JsonConvert.DeserializeObject<Metrics>(json);

«Запросы / длительность» в json не десериализуются в класс Metrics.

Я могу сделать это перед десериализацией:

json = json.Replace("requests/duration","requestsduration")

но мне было интересно, есть ли более чистый способ.

Предоставляет ли json.net способ работы со специальными символами в полях json

1 Ответ

1 голос
/ 24 октября 2019

Вы можете настроить имена полей для json с помощью атрибута JsonProperty. Для класса Metrics вы можете сделать следующее:

class Metrics
{
   public DateTime start = DateTme.MinValue;
   public DateTime end = DateTme.MinValue;
   [JsonProperty("requests/duration")]
   public RequestsDuration requestsduration = null;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...