2017-07-24 30 views
0

我沒有什麼問題反序列化。在變量測試中,我得到空值。其他方法如何在方法中返回正確的json。SerializeObject,DeserializeObject並返回Json

*在我的圖片轉換爲對象,但通常我投來ClaimValue :)

你有我做了什麼錯什麼想法?

 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

回答

2

你包裹的索賠清單在一個匿名對象,所以你的JSON看起來就像這樣:

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

不能反序列化,作爲一個ClaimsValue,因爲沒有按不符合該結構。

生成類包含包裝和列表,像這樣:

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

然後反序列化到的是:

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

參見Deserializing JSON into an object

+0

6分鐘:)我會接受你的回答:)謝謝! –