0

通常我们通过这段代码使用 JSON.NET 反序列化

JsonConvert.DeserializeObject<CLASS TYPE> (text, settings);

想象一下,我们有这样的 JSON 请求:

{
  "command" : "register_user",
  "params" : {
    "@c" : "register_params",
    "name" : "sdfsd",
    "email" : "sdfsd@ddkdk",
    "password" : "JDFffJJJd"
  }
}

我们如何自动检测到我们需要使用 JSON.NET 将“名称”、“电子邮件”和“密码”字段反序列化为一个 register_params 对象?

4

1 回答 1

0

使用 TypeName 值“$type”。

我已经写了两种方法来做到这一点:

//T can be an interface or a derived type
public static T DeserializeObject<T>(string json) where T : class
//Uses "$type" to determine the object
public static object DeserializeObject(string json)

来源: https ://gist.github.com/ricjac/b84a1d550cfe469f3945

于 2015-04-30T02:29:11.910 回答