将属性名称有空格的 json 对象从 c# 发布到第三方 api

dev*_*_la 4 c# post serialization json deserialization

我正在从我的 asp.net mvc 项目调用第三方 api。该 api 需要属性名称带有空格的 json 对象。但在 C# 中,我们无法创建带有空格的属性名称。我被困住了,我该怎么办?

我尝试过使用 JsonProperty,但它不起作用。我尝试替换序列化字符串中的字符串,然后将该字符串发送到 api,但这给了我完全错误。

{
 "Single":14000,
 "Double":14500,
 "Triple":15000,
 "ExtraBed":15500,
 "ExtraChild":16000,
 "ExtraAdult":16000
}
Run Code Online (Sandbox Code Playgroud)

但我必须传递“加床”而不是 ExtraBed。

Bas*_*van 5

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);
Run Code Online (Sandbox Code Playgroud)

result等于{"Extra Bed":3.0}