2017-05-15 34 views
0

我有一個對象,我想將其序列化爲自定義序列化格式。例如如何在對象的不同屬性上創建自定義序列化

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

我想camelcase名稱,但不是KeyValues。這在Newtonsoft中可能嗎?我知道如何爲整個對象做這件事,但不知道具體屬性。

因此,輸出應該是這樣的:

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

我用了一個簡短的例子。 不過我用駝峯 JsonSerializerSettings { ContractResolver =新CamelCasePropertyNamesContractResolver(), }; 這是用於課堂上的其他對象。我只需要非駱駝的情況下只有KeyValues裏面。 – Abhay

回答

0

你只需要屬性與JsonProperty領域,並設置要使用標籤:

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

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

JsonProperty包括在Newtonsoft.Json庫。

+0

這沒有用。 因爲我已經使用camelcase序列化程序來處理其他屬性,而且我只想自定義幾個屬性而不需要駝峯 – Abhay

+0

你能解釋爲什麼沒有用,所以我可以幫你嗎?使用這個屬性你可以設置你想要的任何標籤,所以我認爲你可以達到你想要的。 –

+0

我已經使用CamelCasePropertyNamesContractResolver 因爲我的類包含幾個需要此類的嵌套類。 我想控制只有少數成員沒有駱駝案件 – Abhay

相關問題