将 JSON 反序列化为包含字典的强类型对象
本文关键字:强类型 对象 字典 包含 JSON 反序列化 | 更新日期: 2023-09-27 18:36:23
我有以下类:
public class Test
{
public Dictionary<string, string> dict = new Dictionary<string, string>();
public static void main(String args[]){
var serializer = new JavaScriptSerializer();
Test tt = new Test();
tt.dict.Add("hello","divya");
tt.dict.Add("bye", "divya");
String s = serializer.Serialize(tt.dict); // s is {"hello":"divya","bye":"divya"}
Test t = (Test)serializer.Deserialize(s,typeof(Test));
Console.WriteLine(t.dict["hello"]); // gives error since dict is empty
}
所以问题是如何将像 {"hello":"divya","bye":"divya"} 这样的 json 字符串反序列化为包含字典的强类型对象。
要将其反序列化为Dictionary
,JSON必须看起来有点不同。它必须定义Test
类(松散):
{
dict: {
"hello": "divya",
"bye": "divya"
}
}
请参阅,JSON 中存在dict
定义。但是,您那里的内容可以直接反序列化到Dictionary
中,如下所示:
tt.dict = (Dictionary<string, string>)serializer.Deserialize(s,
typeof(Dictionary<string, string>));