Post json Object, имя свойства которого имеет место для стороннего API от C # - PullRequest
2 голосов
/ 26 июня 2019

Я звоню стороннему API из моего проекта asp.net mvc. Для этого API требуется JSON-объект, который имеет имя свойства с пробелом. Но в c # мы не можем создать имя свойства с пробелом. Как я могу это сделать, я застрял?

Я пытался использовать JsonProperty, но он не работает. Я попытался заменить строку в сериализованной строке, а затем отправить эту строку в API, но это дает мне полную ошибку.

{
 "Single":14000,
 "Double":14500,
 "Triple":15000,
 "ExtraBed":15500,
 "ExtraChild":16000,
 "ExtraAdult":16000
}

Но вместо ExtraBed я должен пройти как «Дополнительная кровать».

1 Ответ

3 голосов
/ 26 июня 2019

JsonPropertyAttribute не влияет на JavaScriptSerializer. Для JavaScriptSerializer нет атрибута для изменения имени свойства. Вы можете написать для него пользовательский JavaScriptConverter, но я рекомендую просто использовать Newtonsoft.

 class AxisRoom
 {
     [JsonProperty("Extra Bed")]
     public decimal ExtraBed { get; set; }
 }


 AxisRoom _AxisRoom = new AxisRoom { ExtraBed = 3 };
 var result = JsonConvert.SerializeObject(_AxisRoom);

result равно {"Extra Bed":3.0}

...