Выбранный ответ совершенен, но я думаю, что к тому моменту, когда я набираю это, разрешитель контракта должен измениться на что-то вроде этого, потому что DictionaryKeyResolver больше не существует:)
public class CamelCaseExceptDictionaryKeysResolver : CamelCasePropertyNamesContractResolver
{
protected override JsonDictionaryContract CreateDictionaryContract(Type objectType)
{
JsonDictionaryContract contract = base.CreateDictionaryContract(objectType);
contract.PropertyNameResolver = propertyName => propertyName;
return contract;
}
}