我正在与一个API进行交互,其中预期的json包含一个名为“@class”的属性。
为了澄清(并且已经在这里多次询问过),如果该属性简称为“class”,那么您可以在前面添加符号“@”以避免我们使用保留的事实单词,例如:
public string @class { get; set; }
在这种情况下,属性名称包含“@”符号。我无法改变班级的定义,因为我不能改变。
正如您所料,json2csharp不喜欢它,并通过它运行示例json返回:
public string __invalid_name__@class { get; set; }
这似乎完全合理!
除了在发送它之前立即在json上使用string.replace之外还有什么方法可以解决这个问题(这对我感觉很脏!)
答案 0 :(得分:3)
如果您可以使用Json.NET,您可以通过属性轻松指定它:
public class Test
{
[JsonProperty("@class")]
public string Name { get; set; }
}