json期望一个属性“@class”。如何在c#中定义

时间:2015-01-02 11:51:22

标签: c# json serialization json.net

我正在与一个API进行交互,其中预期的json包含一个名为“@class”的属性。

为了澄清(并且已经在这里多次询问过),如果该属性简称为“class”,那么您可以在前面添加符号“@”以避免我们使用保留的事实单词,例如:

public string @class { get; set; }

在这种情况下,属性名称包含“@”符号。我无法改变班级的定义,因为我不能改变。

正如您所料,json2csharp不喜欢它,并通过它运行示例json返回:

public string __invalid_name__@class { get; set; } 

这似乎完全合理!

除了在发送它之前立即在json上使用string.replace之外还有什么方法可以解决这个问题(这对我感觉很脏!)

1 个答案:

答案 0 :(得分:3)

如果您可以使用Json.NET,您可以通过属性轻松指定它:

public class Test
{
    [JsonProperty("@class")]
    public string Name { get; set; }
}