2017-07-24 5 views
0

Ich habe wenig Problem mit Deserialisierung. Im Variablentest bekomme ich null. Andere Sache, wie richtig json in Methode zurückgeben.SerializeObject, DeserializeObject und JSON zurückgeben

* In Bild werfe ich einzuwenden, aber normalerweise warf ich ClaimValue :)

Haben Sie eine Ahnung, was ich falsch gemacht?

 foreach (var claim in claims) 
     { 
      claimValues.Add(new ClaimValue { Type = claim.Type, Value = claim.Value, ValueType = claim.ValueType }); 
     } 

     string json = JsonConvert.SerializeObject(new 
     { 
      results = claimValues 
     }); 

     var test = JsonConvert.DeserializeObject<ClaimValue>(json); 

     return json; 
    } 
} 

public class ClaimValue 
{ 
    public string Value { get; set; } 
    public string ValueType { get; set; } 
    public string Type { get; set; } 
} 

enter image description here

Antwort

2

Sie das Einwickeln der Ansprüche Liste in einem anonymen Objekt, so dass Ihre JSON wird wie folgt aussehen:

{ 
    "results" : [ 
     { 
      "Type" : "foo", 
      "ValueType" : "bar", 
      "Value" : "baz" 
     }, 
     { 
      // ... 
     } 
    ] 
} 

Sie können nicht deserialisieren, dass als eine ClaimsValue, denn das doesn Passe nicht zu dieser Struktur.

generieren Klassen den Wrapper und die Liste, um so etwas enthalten:

var test = JsonConvert.DeserializeObject<ClaimsContainer>(json); 

Siehe auch Deserializing JSON into an object:

public class ClaimsContainer 
{ 
    public List<ClaimsValue> results { get; set; } 
} 

Dann in das deserialisieren.

+0

6 Minuten :) und ich werde Ihre Antwort annehmen :) danke! –

Verwandte Themen