Я пытаюсь сериализовать объект как camelCase, и я обнаружил, что только объекты на уровне root правильно верблюжь. Все, что ниже уровня root, называется PascalCase. Я пишу консольное приложение, используя Json. NET 12.0.3 и. NET Framework 4.0.
public class Deal
{
public string Id { get; set; }
public string Name { get; set; }
public List<PublicId> PublicIds { get; set; }
}
public class PublicId
{
public string IdType { get; set; }
public string Value { get; set; }
}
Для сериализации я использую:
var json = JsonConvert.SerializeObject(deal, Formatting.Indented, new JsonSerializerSettings
{
DateFormatString = "yyyy-MM-dd",
ContractResolver = new CamelCasePropertyNamesContractResolver()
});
Результат json выглядит следующим образом:
{
"id": null,
"name": "Deal 1",
"publicIds": [
{
"IdType": "ID1",
"Value": "A12"
},
{
"IdType": "ID2",
"Value": "B12"
}
]
}
Как видите, значения для IdType и Value не корректно сериализуются в camelCase, а скорее сериализуются в PascalCase. Существуют ситуации, когда мне нужно изменить сериализацию между PascalCase по умолчанию и camelCase, поэтому я не смогу использовать аннотации JsonProperty для принудительного включения camelCase во время сериализации. Кроме того, я бы хотел использовать Json. NET как единственную библиотеку json для моего проекта.
Есть ли чистый способ получить то, что я ищу?