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

Dam*_*die 10 c# json

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

    { 
    "$schema": "http://example.com/person.json",
    "name": "John",
    "age": 86
    }
Run Code Online (Sandbox Code Playgroud)

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

public class Person
{
    public const string $schema= @"http://example.com/person.json";
    public string name {get;set; }
    public int age {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

...

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

 JavaScriptSerializer serializer = new JavaScriptSerializer();
 string json = serializer.Serialize(person);
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,$ schema导致出现"意外字符'$'错误.是否有解决方法?

jac*_*cob 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;}
}
Run Code Online (Sandbox Code Playgroud)


Sam*_*Axe 5

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

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

    public string name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)