DataContractJsonSerializer не включен, поэтому включены только поля с пометкой DataMemberAttribute.
Я хотел изменить это во время выполнения (как программно исключить определенные поля в зависимости от определенных условий), чтобы исключить поля, которые являются нулевыми, но это поведение по умолчанию. Так что, думаю, это уже не актуально.
Обновление, также может быть использовано следующее:
public DateTime DateOfBirth;
[DataMember] public bool Confidential;
[DataMember (Name="DateOfBirth", EmitDefaultValue=false)]
DateTime? _tempDateOfBirth;
[OnSerializing]
void PrepareForSerialization (StreamingContext sc)
{
if (Confidential)
_tempDateOfBirth = DateOfBirth;
else
_tempDateOfBirth = null;
}