反序列化没什么问题。在变量测试中,我得到null。其他的事情如何在方法中返回正确的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; }
}
答案 0 :(得分: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);