1

json2csharp を使用して、json を逆シリアル化できる素敵な c# クラスを作成しました。

json2csharp が一部のフィールドに invalid_name という名前を付けたことを除いて、実際には期待どおりに機能しています。それらの名前を有効なcsharp名に変更しましたが、シリアル化するとそれらのクラスはnullになります。

私はこの他のSO投稿を見つけました...回答者の1人が次のように言った...

以下に貼り付けたクラスは、json の一部のフィールドに名前が付けられているため、直接は機能しないことに注意してください。手動で名前を変更してマップする必要がある場合があります。

これは私の問題を正確に説明しています。残念ながら、答えは実際に「それらをマッピングする」方法についての手がかりを与えません。それで、いくつかのjson配列をC#クラスに手動でマップする方法を誰かに教えてもらえますか。

私はRestSharpデシリアライザーを使用しています。

何か案は?

4

1 に答える 1

6

JSON.NET をベースまたは JSON 解析として使用している場合は、プロパティの名前を変更し、それらを属性で装飾して、元の JSON オブジェクトに戻すことができます。

例として、C# では無効な 1 という JSON のプロパティがあります。これは、次の方法で修正できます。

 [JsonProperty("1")]
 public int? One { get; set; }

クラス レベルで編集する場合は JsonObject 属性もあり、プロパティのシリアル化を無視するための JsonIgnore オブジェクトもあります。

于 2013-02-19T04:28:18.427 に答える