2016-11-04 48 views
1

我有一個對象,我想連載,我們叫它JsonNameValuePair。繼承人什麼我爲JsonNameValuePair代碼可能看起來像:是否可以「減少」Json.NET的對象序列化?

public class JsonNameValuePair 
{ 
    string Label { get; set; } 

    string Value { get; set; } 
} 

如果我是用Json.NET我會得到的東西看起來像這樣連載這JSON:

{ 
    "label":"Name", 
    "value":"Area 3" 
} 

但這是難以置信的龐大的我實際需要的數據量,我真正需要是要刪除的屬性名稱,以及屬性Label的值爲屬性Value的「有效」名稱。我患有XY Problem這裏?

基本上,我希望能夠在我的代碼做的是

JsonNameValuePair myPair = new JsonNameValuePair() 
{ 
    Label = "My Property", 
    Value = "The Value" 
} 

,當我連載這一點,我想我的輸出看起來像

{ 
    "My Property" : "The Value" 
} 

,因爲這會令代碼在接收端更容易,並且會使數據調用更小。這怎麼能實現?

+0

爲什麼不只是在服務器端使用字典,然後你得到你所需要的? – Jamiec

+1

通常建議**不要**在JSON中使用動態鍵名稱,因爲這會使得必須對其進行反序列化的客戶變得更加困難 - 請參閱https://github.com/WhiteHouse/api-standards#responses。 –

+0

@Jamiec呃......它顯然很痛。 –

回答

2

您可以通過使用自定義的JsonConvert。 檢查this這正是你需要的。

相關問題