2017-04-17 6 views
-2

いくつかのプロパティを持つクラスが1つあり、クラスオブジェクトに変換する必要がありますが、問題は、jsonの文字列フィールドが1つのマッピング文字列を入力したときに毎回違うからです。 My Entityクラスは以下のようになります。jsonの文字列をクラスオブジェクトに解析し、C#でカスタムマッピングを行う方法は?

public class CustomImportProducts 
{ 
    public string Title { get; set; } 
    public string BarCode { get; set; } 
    public string Description { get; set; } 
} 

私のjson文字列は以下のように毎回違いがあります。そのため

[{"name":"Bottle","code":"105","note":"empty"}] 
// like this and need to map name to title, code to barcode like this 

私は以下のようなマッピングのために、ユーザから1つのマッピング文字列を入力する:迅速でないC#で

{"title":"name","barcode":"code","description":"note"} 
//this mapping string changes based on requirement. 

このリンクのようなものを、それ。 場合は、以下の

[{"productTitle":"Bottle","Productcode":"105","note":"empty"}] 

私のマッピング文字列などのように私のJSON文字列:

{"title":"productTitle","barcode":"Productcode","description":"note"} 

Object Mapper in Swift

どのようにこれを可能に任意のアイデア。 ありがとうございます

このタイプのソリューションを提供するライブラリです。

+0

@ Brian Rogersこれは重複していません私はJsonPropertyについて知っていますが、毎回異なるプロパティを持つさまざまなデータについて、どの値がどの値にバインドされているかを識別するマッピングパラメータを使用してクラスプロパティにバインドしています。 – tthewolf3D

答えて

-1

あなたはシリアル化をカスタマイズするためのプロパティにJsonProperty属性を適用することができます。

public class CustomImportProducts 
{ 
    [JsonProperty("name")] 
    public string Title { get; set; } 
    [JsonProperty("code")] 
    public string BarCode { get; set; } 
    [JsonProperty("note")] 
    public string Description { get; set; } 
} 

UPDATE:

あなたはJSONのフォーマットを知っていれば、あなたが可能なすべてのための別のモデルを定義することができデシリアライズしたいですJSONを作成し、AutoMapperのようなツールを使用してEFモデルにマップします。

異なるJSONファイルで異なる名前のプロパティを.NETの同じプロパティにマップできるJSONデシリアライザは認識していません。

+0

私の質問は、jsonの文字列が私が指定した違いかもしれないということです。最初に質問を読む – tthewolf3D

+0

@ tthewolf3D、質問を更新する前に自分の答えを投稿したことに気付かなかったのですか?ソリューションを見つけることに幸運。 –

+0

編集前に私は "私のjson文字列は以下のように毎回違いのように見えます。"お返事ありがとうございます – tthewolf3D

関連する問題