如何使用名为“object”的变量名?

时间:2013-08-27 13:31:05

标签: c# .net json variables serialization

我即将使用JavaScriptSerializer反序列化JSON。不幸的是,在JSON中,有一个名为object的变量。

我不能写下这样的课程:

public class FacebookObjectDataData
{
    public FacebookObjectDataDataObject object { get; set; }

    public FacebookObjectDataData()
    {
    }
}

但我需要该名称来反序列化它。我该如何使用它?

5 个答案:

答案 0 :(得分:9)

您可以为字段@object命名:

public class FacebookObjectDataData
{
    public FacebookObjectDataDataObject @object { get; set; }

    public FacebookObjectDataData()
    {
    }
}

因此不会将其标记为错误。您可以使用其他受限制的名称。

有关此处的更多信息,请http://msdn.microsoft.com/en-us/library/aa664670.aspx

答案 1 :(得分:4)

您可以使用@object作为变量名称。 @转义名称以使其与“object”匹配,它不会添加额外的字符。

另见this question

和Eric Lippert的this post

答案 2 :(得分:2)

public FacebookObjectDataDataObject object { get; set; }

由于object是保留的关键字,因此无法编译。

你可以做这样的事情

public FacebookObjectDataDataObject @object { get; set; }//I don't like it personally

或者

 public FacebookObjectDataDataObject Object { get; set; }//This will work

答案 3 :(得分:2)

您可以使用@字符来允许关键字作为变量的名称

public FacebookObjectDataDataObject @object { get; set; }

您也可以使用DataMember属性更改字段名称

[DataMember(Name = "object")]
public FacebookObjectDataDataObject facebookField { get; set; }

答案 4 :(得分:1)

你可以随心所欲地命名,只需用它来装饰:

[DataMember(Name = "object")]
public FacebookObjectDataDataObject MyCoolField { get; set; }