将C#保留字作为PostData Api的属性发送

时间:2018-04-06 06:33:55

标签: c# api asp.net-web-api

我有一些JSON我发送到C# API,看起来如下

 {
  "currency": "BTC",
  "amount": "0.00049659",
  "type": "bankToExchange"
 }

问题是当模型到达我的控制器时,type属性更改为@type,这使得发布请求失败。

我尝试连接的API使用type,因此无法更改。该帖子在Postman中有效,所以有解决方法吗?

2 个答案:

答案 0 :(得分:0)

使用JsonProperty

在您的类型上添加DataMember名称属性
[DataMember(Name = "@type")] //if not using NewtonSoft
[JsonProperty("@type")] //if using NewtonSoft
public string type { get; set; }

enter image description here

答案 1 :(得分:0)

将Data成员属性与属性名称一起使用。您可以通过为json创建类来使用,如下所示

    [DataContract]
    public class Sample{
         [DataMember(Name = "@type")]
         public string Type{get;set;}
    }

您也可以尝试使用其他方法,如果您添加注释以便在属性名称之前附加@ ,那么这种方法更优雅且意义更充分:

     public class Sample{
             public string @type{get;set;}
        }

供参考:object to deserialize has a C# keyword