2016-12-21 11 views
0
Thats my class. 

class MyClass1 : IInterface1 
{ 
    public MyClass1() 
    { 
     this.Interface2s = new List<IInterface2>(); 
    } 

    public string strI1 { get; set; } 
    public int intI1 { get; set; } 
    public IList<IInterface2> Interface2s { get; set; } 
    public int intC1 { get; set; } 
} 

私はいくつかのランダムな値でシリアル化しました。結果:次にjsonからのオブジェクトのリストを逆シリアル化する方法

{ 
    "strI1": "strI1", 
    "intI1": 2, 
    "Interface2s": [ 
    { 
     "intI2": 111 
    }, 
    { 
     "intI2": 222 
    }, 
    { 
     "intI2": 333 
    } 
    ] 
} 

、私は戻って、その文字列をデシリアライズしたいが、私はその一例にhttp://www.newtonsoft.com/json/help/html/DeserializeWithDependencyInjection.htm

Iを使用しているインタフェースをデシリアライズするには

result of deserialization next: 
{ 
    "strI1": "strI1", 
    "intI1": 2, 
    "Interface2s": [ 
    { 
     "intI2": 0 
    }, 
    { 
     "intI2": 0 
    }, 
    { 
     "intI2": 0 
    } 
    ] 
} 

私は自分のIList内の値を失いますよリスト内の値を逆シリアル化する必要もあります。助言がありますか?

+1

クラスをシリアル化してjsonにするにはどうしますか? –

+0

stackoverflowには非常に多くの質問があります。それらの答えのどれもあなたを助けませんか?私はあなたがそれを理解することができると確信しています – KjetilNordin

+2

可能な複製[Json文字列をC#オブジェクトリストに変換](http://stackoverflow.com/questions/22191167/convert-json-string-to-c-sharp- object-list) – KjetilNordin

答えて

2

私のアドバイスは、ちょうどhttp://www.newtonsoft.com/json

JsonConvert.SerializeObject(target) 

を使用して

JsonConvert.DeSerializeObject<MyClass1>(target) 

をデシリアライズするためにそして、それはちょうどそれと同じくらい簡単であるべきです。

+0

申し訳ありませんが、json.netを使用していますが、問題があります。 –

+0

'JsonConvert.DeSerializeObject (target)'はMyClassとListを返します3つの空のオブジェクトがあります。 –

+0

シリアル化中にhttp://www.newtonsoft.com/json/help/html/serializetypenamehandling.htmを試してみてください。それは問題かもしれません。インタフェースを間違った型に逆シリアル化している可能性があります。型情報を埋め込むことで問題を解決できます。 @RiseAgainst – gmn

関連する問題