2017-05-15 11 views
0

オブジェクトがあり、それをカスタムのシリアル化形式にシリアル化する必要があります。例:オブジェクトの異なるプロパティでカスタムシリアル化を作成する方法

 class MyObj 
    { 
     public string Name { get;set;} 
     public Dictionary<string, string> KeyValues {get;set; } 
    } 

私はキャメルケースにしたいが、KeyValuesではない。これはNewtonsoftで可能ですか?私はオブジェクト全体でこれを行う方法を知っていますが、特定のプロパティではありません。

ので、出力は次のようになります。

public class MyObj 
{ 
    [JsonProperty("name")] 
    public string Name { get;set;} 

    [JsonProperty("KeyValues")] 
    public Dictionary<string, string> KeyValues {get;set; } 
} 

JsonPropertyが含まれている:

{ 
     "name" : "Mike", 
     "keyValues": 
     { 
      "Abc": "x", 
      "Prv": "y" 
     } 
    } 
+0

私は短い例を使用しました。 私は JsonSerializerSettings { ContractResolver =新しいCamelCasePropertyNamesContractResolver()、 }キャメルケースに使用しています。 これは、クラス内の他のオブジェクト用です。私はそれの中のKeyValuesだけのために非ラクダのケースが必要です。 – Abhay

答えて

0

はあなただけJsonPropertyと属性フィールドを使用したいラベルを設定する必要がありますNewtonsoft.Jsonライブラリ。

+0

これは役に立ちません。 私はcamelcaseシリアライザを他のプロパティに使用していましたが、キャメルケースなしでいくつかのプロパティをカスタマイズしたいのです – Abhay

+0

なぜ役立たないのか説明できますか?この属性を使用すると、任意のラベルを設定できるので、必要なものを達成できると思います。 –

+0

CamelCasePropertyNamesContractResolver 私のクラスはこれを必要とするいくつかのネストされたクラスを含んでいます。 キャデルケースを持たないほんの少数のメンバーだけをコントロールしたい – Abhay

関連する問題