2013-08-27 3 views
2

Я собираюсь десериализовать JSON с JavaScriptSerializer. К сожалению, внутри JSON существует переменная, называемая object.Как использовать имя переменной «объект»?

И я не могу так написать класс, такие как:

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

    public FacebookObjectDataData() 
    { 
    } 
} 

, но мне нужно это имя для десериализации это. Как я могу использовать его?

+1

Если у вас есть контроль над выводом JSON, а изменить имя переменного имени. Если не пойти с опцией @object – user65439

+0

http://stackoverflow.com/questions/91817/whats-the-use-meaning-of-the-character-in-variable-names-in-c – user2711965

+0

Я предпочитаю иметь имена переменных понятны. Если я вижу объект, я думаю об простом объекте, представленном в .NET. Не пользовательский объект. Я должен переименовать его в «data» или «facebookData» ... – RvdK

ответ

9

Вы можете назвать поле @object:

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

    public FacebookObjectDataData() 
    { 
    } 
} 

Так что не будут помечены как ошибки. Вы можете сделать это с другими ограниченными именами.

Для более читать здесь http://msdn.microsoft.com/en-us/library/aa664670.aspx

4

Вы можете использовать @object в качестве имени переменной. @ экранирует имя так, чтобы оно соответствовало «объекту», оно не добавляет лишний символ.

См. Также this question.

И this post от Eric Lippert.

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 
1

Вы можете назвать это все, что вы желаете, просто украсить его с этим:

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

Вы можете использовать @ символ, чтобы разрешить ключевое слово как имя переменной

public FacebookObjectDataDataObject @object { get; set; } 

также можно использовать DataMember атрибут, чтобы изменить имя поля

[DataMember(Name = "object")] 
public FacebookObjectDataDataObject facebookField { get; set; } 
Смежные вопросы