如何使用 class 字符串值反序列化对象
How to deserialize an object with class string value
我正在查询 table,它有 2 列。第一个是 json 字符串,第二个是字符串 class 名称。
通常要反序列化一个对象,我会执行以下操作
var newObject = JsonConvert.DeserializeObject<MyObject>(jsonString);
但在这种情况下,我只有一个字符串值 MyObject。我想知道,我怎样才能反序列化这个对象?
首先,您需要从该字符串值中获取 Type
:
Type type = Type.GetType(typeName);
然后使用带有 Type
参数的 DeserializeObject
重载:
var newObject = JsonConvert.DeserializeObject(jsonString, type);
见https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_JsonConvert_DeserializeObject_2.htm。
我正在查询 table,它有 2 列。第一个是 json 字符串,第二个是字符串 class 名称。
通常要反序列化一个对象,我会执行以下操作
var newObject = JsonConvert.DeserializeObject<MyObject>(jsonString);
但在这种情况下,我只有一个字符串值 MyObject。我想知道,我怎样才能反序列化这个对象?
首先,您需要从该字符串值中获取 Type
:
Type type = Type.GetType(typeName);
然后使用带有 Type
参数的 DeserializeObject
重载:
var newObject = JsonConvert.DeserializeObject(jsonString, type);
见https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_JsonConvert_DeserializeObject_2.htm。