2014-06-24 5 views
2

так у меня есть этот метод (второй блок кода) , которые преобразуют любой JSON в с острым предметом он работает хорошо, ноC# Deserialize JSON к любому методу типа

то, что я хочу, чтобы сделать его в быть в состоянии скажите метод, какой тип объекта она нужно бросить в

//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 

ответ

3
public static T JSONToObj<T>(string i_json) 
{ 
    var serializer = new JavaScriptSerializer(); 
    T io_obj = serializer.Deserialize<T>(i_json); 

    return io_obj; 
} 

Вы можете назвать это так:

Home h = JSONToObj<Home>(json); 
+0

и как я могу назвать этот метод? – user1310492

+0

См. Обновленный ответ – dotnetom

+0

@dotnetom Вам необходимо добавить ограничение 'where T: new()' для десериализуемого типа –