2

で JSON をデシリアライズしようとしています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; }

objectは予約済みのキーワードであるため、上記はコンパイルされません。

このようなことができます

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

または

 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 に答える