C#将JSON反序列化为任何类型的方法
我有这个方法(第二段代码) 将任何json转换为c sharp对象,效果很好,但是 我想对他做什么 能够告诉方法她需要投射到哪种类型的对象C#将JSON反序列化为任何类型的方法,c#,json,javascriptserializer,C#,Json,Javascriptserializer,我有这个方法(第二段代码) 将任何json转换为c sharp对象,效果很好,但是 我想对他做什么 能够告诉方法她需要投射到哪种类型的对象 //not real code public static object JSONToObj(string i_json, typeof(Home)) //will return an Home object //not real code //real code public static object JSONToObj(string i_jso
//not real code
public static object JSONToObj(string i_json, typeof(Home)) //will return an Home object
//not real code
//real code
public static object JSONToObj(string i_json)
{
serializer = new JavaScriptSerializer();
object io_obj = serializer.Deserialize<object>(i_json);
return io_obj;
}
//real code
//不是真正的代码
公共静态对象jsontobj(字符串i_json,typeof(Home))//将返回一个Home对象
//非真实代码
//实码
公共静态对象JSONTOBJ(字符串i_json)
{
serializer=新的JavaScriptSerializer();
object io_obj=序列化程序。反序列化(i_json);
返回io_obj;
}
//实码
公共静态T JSONTOBJ(字符串i\u json)
{
var serializer=新的JavaScriptSerializer();
T io_obj=序列化程序。反序列化(i_json);
返回io_obj;
}
你可以这样称呼它:
Home h = JSONToObj<Home>(json);
Home h=jsontobj(json);
我应该如何调用此方法?@dotnetom您需要为要反序列化的更新类型添加一个约束where T:new()
。对于类型t
@YuvalItzchakov,您不能返回对象
。如果是这种情况,反序列化
方法不会有同样的约束吗?但是它没有:@YuvalItzchakov-如果反序列化有new()限制,那么这里也需要相同的限制
Home h = JSONToObj<Home>(json);