2011-11-16 42 views
1

我使用Json.Net作为(de)序列化程序。所以我尝试发送一个带有JSON正文的请求,例如:名称中带奇怪字符的C#和JSON字段(如@)

{ "Person" : { "@personName" : "Name",  "@personAge" : 26, } } 

并且应该收到相同的主体。但我使用“personName”和“personAge”字段来序列化值,但我需要在名称的开头添加“@”。正如你知道C#使用“@”可以使用保留字作为变量名,所以应该有一些技巧如何做到这一点。不幸的是,我不知道如何做到这一点。

我希望有人遇到这样的问题,并为它提供解决方案。 在此先感谢。

+2

即使'personName'和'personAge'是变量名,当它们用引号引起来时,C#会将它们视为字符串 – xbonez

回答

1
public class Person 
{ 
    [JsonProperty("@personName")] 
    public string PersonName { get; set; } 
} 

使用JsonPropertyAttribute指定序列化的属性名称。

+0

我认为这就是我所寻找的。不幸的是,档案内的文档工作不正确。 无论如何,我会尝试这个属性,但我认为它会正常工作:) – Dragon