Questo richiederà JSON e convertirlo in una classe fortemente tipizzata di cui si specifica (T)
public static T Deserialize<T>(string json)
{
var obj = Activator.CreateInstance<T>();
using(var ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
var serializer = new DataContractJsonSerializer(obj.GetType());
obj = (T) serializer.ReadObject(ms);
return obj;
}
}
Questo richiederà una classe e serializzare come JSON
public static string Serialize<T>(T obj)
{
var serializer = new DataContractJsonSerializer(obj.GetType());
using (var ms = new MemoryStream())
{
serializer.WriteObject(ms, obj);
return Encoding.Default.GetString(ms.ToArray());
}
}
Nota: Nel primo esempio è necessario disporre di una classe di supporto per specificare il tipo T
. Quindi, se hai detto che che T è di tipo User
si avrebbe bisogno di avere questo specificato da qualche parte:
public class User
{
public string Username { get; set; }
public string Firstname { get; set; }
}
fonte
2011-10-08 21:48:11
Basta usare [Json.NET] (http: // james.newtonking.com/projects/json-net.aspx), è possibile serializzare e deserializzare da e verso qualsiasi tipo che si desidera creare. –
possibile duplicato di [JS Deserialize C#] (http://stackoverflow.com/questions/7895105/json-deserialize-c-sharp) – nawfal