私は自分のウェブサイトにJson.Netを使用しています。シリアライザはデフォルトでcamelcaseのプロパティ名をシリアル化します。私は手動で割り当てるプロパティ名を変更したくありません。私は、次のコードを持っている:Json.NetにPropertyNameが明示的に設定されていない場合のみCamelCase?
public class TestClass
{
public string NormalProperty { get; set; }
[JsonProperty(PropertyName = "CustomName")]
public string ConfiguredProperty { get; set; }
}
public void Experiment()
{
var data = new TestClass { NormalProperty = null,
ConfiguredProperty = null };
var result = JsonConvert.SerializeObject(data,
Formatting.None,
new JsonSerializerSettings {ContractResolver
= new CamelCasePropertyNamesContractResolver()}
);
Console.Write(result);
}
Experiment
からの出力は次のとおりです。ただし
{"normalProperty":null,"customName":null}
、私は出力になりたい:
{"normalProperty":null,"CustomName":null}
はこれが実現することは可能ですか?
'CamelCasePropertyNamesContractResolver'を使用してのみ、' JsonProperty'を使いません。 –
@ L.B私がJsonPropertyのみを使用する場合、デフォルト命名はPascalCaseになりますので、JSONでは 'normalProperty'が' NormalProperty'になります。 – Oliver
Oliverいいえ、これはJsonPropertyのものとまったく同じにシリアライズされています。 –