2

我即将用JavaScriptSerializer. 不幸的是,在 JSON 中,有一个名为object.

而且我不能这样写课程,例如:

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

    public FacebookObjectDataData()
    {
    }
}

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

4

5 回答 5

9

您可以命名您的字段@object

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

    public FacebookObjectDataData()
    {
    }
}

所以它不会被标记为错误。您可以使用其他受限名称来执行此操作。

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

于 2013-08-27T13:32:16.650 回答
4

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

另请参阅此问题

还有Eric Lippert 的这篇文章

于 2013-08-27T13:32:25.823 回答
2
public FacebookObjectDataDataObject object { get; set; }

Above won't compile since object is a reserved Keyword.

You can do something like this

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

Or

 public FacebookObjectDataDataObject Object { get; set; }//This will work
于 2013-08-27T13:35:29.070 回答
2

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

public FacebookObjectDataDataObject @object { get; set; }

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

[DataMember(Name = "object")]
public FacebookObjectDataDataObject facebookField { get; set; }
于 2013-08-28T06:12:44.447 回答
1

你可以随意命名它,只需用这个来装饰它:

[DataMember(Name = "object")]
public FacebookObjectDataDataObject MyCoolField { get; set; }
于 2013-08-27T13:36:44.827 回答