C# - 如何在变量名中使用无效字符

时间:2016-01-18 22:36:19

标签: c# json

在C#中,我构建了一个类(为了讨论目的而简化),最终将序列化为一些外部定义的JSON:

    { 
    "$schema": "http://example.com/person.json",
    "name": "John",
    "age": 86
    }

在我的代码中我会有类似的东西:

public class Person
{
    public const string $schema= @"http://example.com/person.json";
    public string name {get;set; }
    public int age {get; set;}
}

...

 Person person = new Person();
 person.name = "John";
 person.age = 88;

 JavaScriptSerializer serializer = new JavaScriptSerializer();
 string json = serializer.Serialize(person);

在上面的代码中,$ schema导致了一个"意外字符' $'错误。有解决方法吗?

2 个答案:

答案 0 :(得分:12)

将属性[DataContract]提供给Person类。

另外,您的意思是schema const吗?

[DataContract]
public class Person
{
    [DataMember(Name = "$schema")]
    public string schema { get; set; }
    public string name { get; set; }
    public int age {get; set;}
}

答案 1 :(得分:5)

如果使用JSON.NET,您可以使用JsonProperty属性:

public class Person {
    [JsonProperty(PropertyName = "$schema")]
    public string schema {get; set;} = @"lsjdhflsjkdf";

    public string name {get;set;}
}