我使用JsonConvert序列化对象并将其保存在数据库中。它是我保存在数据库中的序列化字符串样本:
"[{\"matId\":\"1\",\"value\":\"44\"},{\"matId\":\"2\",\"value\":\"55\"},{\"matId\":\"4\",\"value\":\"77\"}]"
现在当我从db获取这个字符串时,它有很多反斜杠:
Deserialize
因此我无法.Replace("\\","")
。
{{1}}方法对此没有任何影响。我不知道为什么。
答案 0 :(得分:6)
您必须使用JsonConvert.Deserialize
方法。
您的json
字符串包含在方括号([])
中,因此它被解释为数组。因此,您需要deserialize
将其type
收集到一个class
,例如,我们将其称为MyClass
。
public class MyClass
{
public int matId { get; set; }
public int value { get; set; }
}
这是Deserialize
方法。
var results=JsonConvert.DeserializeObject<List<MyClass>>(json);
答案 1 :(得分:1)
反斜杠表示序列化对象。 您需要反序列化List对象。 您可以尝试使用泛型:
public List<T> Deserialize<T>(string path)
{
return JsonConvert.DeserializeObject<List<T>>(path);
}