如何反序列化具有类字符串值的对象

Pho*_*nix 3 c# json-deserialization

我正在查询一个表,它有 2 列。第一个是json字符串,第二个是字符串类名。

通常要反序列化一个对象,我会执行以下操作

var newObject = JsonConvert.DeserializeObject<MyObject>(jsonString);
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我只有一个字符串值 MyObject。我想知道,我怎样才能反序列化这个对象?

Ric*_*res 5

首先,您需要Type从该字符串值中获取 :

Type type = Type.GetType(typeName);
Run Code Online (Sandbox Code Playgroud)

然后使用DeserializeObjectType参数的重载:

var newObject = JsonConvert.DeserializeObject(jsonString, type);
Run Code Online (Sandbox Code Playgroud)

请参阅https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_JsonConvert_DeserializeObject_2.htm

  • 谢谢你,你是我的救星! (2认同)