无法使用 JavaScriptSerializer 反序列化
本文关键字:JavaScriptSerializer 反序列化 | 更新日期: 2023-09-27 18:33:55
我有这个JSON文件:
{
"result":
[
{
"desc" : "Ok",
"cod" : "1"
}
],
"data":
[
{
"cod" : "95B86DF6AE282E67B6B7437D09570847"
}
]
}
一种反序列化它的方法
protected void Deserialize()
{
string path = AppDomain.CurrentDomain.BaseDirectory + @"'token.json";
string file = System.IO.File.ReadAllText(path);
var deserializer = new JavaScriptSerializer();
var results = deserializer.Deserialize<data>(file);
}
public class result
{
public int cod { get; set; }
public string desc{ get; set; }
}
public class data
{
public string cod{ get; set; }
}
问题是它不会反序列化它,而是创建空的 Data 对象。我错过了一些东西,但我不知道是什么,希望有人能帮助我。
您的数据模型与 JSON 对象不对应,序列化程序无法正确反序列化它。请注意,在该对象中,您有对象数组,因此您需要反序列化的正确结构如下所示:
public class Token
{
public Result[] result { get; set; }
public Data[] data { get; set; }
}
然后你可以做:
var res = JsonConvert.DeserializeObject<Token>(file);