как получить значение Json, если переменная Json содержит пробел или какие-либо специальные символы в WCF

#c# #json #wcf

#c# #json #wcf

Вопрос:

json

 {
 
  "id": 261111,
  "date": "2020-08-26 15:06:04",
  "ts": 1598447164,
  "message-id": "<5f462cb575dfda4548a880d4@domain.com>",
  "ts_event": 1598447164
}
  

и мой класс модели

 class Model{

        public string id { get; set; }
        public string date { get; set; }
        public string message_id { get; set; }
        public string ts { get; set; }
        public string ts_event { get; set; }
}
  

и мой веб-метод, как показано ниже

 public response Post(Model model)
{
  string message_Id= model.message_id;
}
  

при этом я получаю нулевое значение для model.message_id, поэтому я реорганизовал свой код, чтобы

 class Model{

        public string id { get; set; }
        public string date { get; set; }

        [JsonProperty("message-id")]   //I have use newtonsoft.json 
        public string message_id { get; set; }
        public string ts { get; set; }
        public string ts_event { get; set; }
}
  

это также не работает, моя цель — получить значение (message-id) json в веб-методе. и сохранить в серверной части

Комментарии:

1. Это действительно сработало для меня [JsonProperty("message-id")]

2. [JsonProperty("message-id")] работает для меня с JsonConvert.DeserializeObject .

3. dotnetfiddle.net/KfDIWl рабочий код здесь.

4. @SowmyadharGourishetty я пытаюсь реализовать webhook. я видел ваш пример кода, в котором вы используете DeserializeObject, но я хотел автоматически привязать значения json к моему классу модели, которые я передаю в качестве аргумента моему веб-методу. спасибо всем вам за быстрый ответ и руководство.

Ответ №1:

если это WCF, то используйте атрибут DataMember следующим образом

 [DataMember(Name = "message-id")]  
public string message_id { get; set; }