2017-04-14 10 views
0

私は、Newtonsoft.Json(JSON.Net)を使用して別のクラスに移入するために使用する既存のREST APIからJSON構造を持っています。JSONをC#クラスに入れたり、その逆にしたりします

同じREST API JSON構造を設定するウィザードを作成したいとします。

問題は、私のクラスの命名規則がAPIのJSON命名規則と異なることです。

私のクラスは、jsonconvert.serializeobjectを使用するためにREST API JSON構造体と同じ命名規則でクラスを作成するか、JSON構造体と一致するJSON文字列を作成する必要がありますか?

答えて

0

私は3番目のオプションを提供します。 [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); 

フィドル:

+0

https://dotnetfiddle.net/bwa1SMはそんなにブライアン、ありがとうございました。魅力のように動作します。 –

+0

追加できるプロパティを除外する他の読者に追加したいだけです [JsonIgnore] –

関連する問題