2017-04-14 130 views
0

我有一個JSON結構從現有的REST API,我用來填充不同的類使用Newtonsoft.Json(JSON.Net)。填充JSON到C#類,反之亦然

我想創建一個嚮導來填充相同的REST API JSON結構。

,我的問題是,我的類命名規則是從JSON API命名約定不同。

我的問題是:我應該使用與REST API JSON結構相同的命名約定來使用jsonconvert.serializeobject,還是應該創建一個匹配JSON結構的JSON字符串?

回答

0

我會提供第三個選項。您可以使用[JsonProperty]屬性標記您的類屬性,以將它們與不同名稱的JSON屬性進行匹配。這樣你就不需要改變你的JSON,也不需要改變你的類的命名規則。這裏有一個簡單的例子:

JSON:

{ 
    "item-identifier": 1234, 
    "item-name": "foo" 
} 

類定義:

public class Item 
{ 
    [JsonProperty("item-identifier")] 
    public int Id { get; set; } 

    [JsonProperty("item-name")] 
    public string Name { get; set; } 
} 

反序列化:

Item item = JsonConvert.DeserializeObject<Item>(json); 

小提琴:https://dotnetfiddle.net/bwa1SM

+0

非常感謝你布賴恩。奇蹟般有效。 –

+0

我只想爲其他讀者添加,以排除可添加的財產 [JsonIgnore] –