通常我们通过此代码使用 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对象?
使用 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