Ответ 1
Конечно.
Для Json.NET
и DataContractJsonSerializer
используйте DataMemberAttribute
: http://msdn.microsoft.com/en-us/library/ms574795.
Просто украсьте свою собственность
[DataMember(Name="PropertyB")]
T PropertyA { ... }
Если вы используете JavaScriptSerializer, вам необходимо создать производную реализацию, как описано здесь: JavaScriptSerializer.Deserialize - как изменить имена полей