2016-12-14 17 views
0

JSONペイロードを逆シリアル化しようとしています。コントロール外の理由から、クラス名と全く同じ名前のプロパティ(メンバ)が含まれています。以下のような何か:メンバー名をタイプを囲むと同じにすることはできません。メンバ名はJSON逆シリアル化時のクラスと同じです

class Id{ 
    public string A, B; 
    public int Id; 
} 

明らかに、コンパイラはと文句を言う:私は、このペイロードからクラスを派生するとき

{ 
    ..., 
    "Id": { 
     "A" : "Hello", 
     "B" : "World", 
     ... 
     "Id" : 1 
    }, 
    ... 
} 

が、私はこのようなものが必要

メンバ(またはそのエフェクトのクラス)の名前を変更すると、Json.NET(私が使いやすいライブラリ)はJsonConvert.DeserializeObject<T>を呼び出すだけでペイロードを「水和」することができますか?

答えて

2

sourceプロパティの中の名前を指定することができますJsonProperty属性を使用し

public class Id 
{ 
    public string A {get; set;} 
    public string B {get; set;} 
    [JsonProperty("Id")] 
    public int IdProp; 
} 
0

...プロパティに別の名前を使用し、そのプロパティをデシリアライズする方法をjson.netするヒントを与えます別の名前の宛先プロパティへのマッピング。

public class Id 
{ 
    public string A { get; set; } 
    public string B { get; set; } 
    [JsonProperty("Id")] 
    public int ExtId { get; set; } 
} 
+0

Downvoter、私はあなたのフィードバックをいただきありがとうございます。 –

関連する問題