Yo uso esto ... pero nunca he desarrollado ninguna aplicación metropolitana, así que no conozco ninguna restricción en las bibliotecas disponibles para ti. (tenga en cuenta que deberá marcar sus clases como con los atributos DataContract y DataMember)
public static class JSONSerializer<TType> where TType : class
{
public static string Serialize(TType instance)
{
var serializer = new DataContractJsonSerializer(typeof(TType));
using (var stream = new MemoryStream())
{
serializer.WriteObject(stream, instance);
return Encoding.Default.GetString(stream.ToArray());
}
}
public static TType DeSerialize(string json)
{
using (var stream = new MemoryStream(Encoding.Default.GetBytes(json)))
{
var serializer = new DataContractJsonSerializer(typeof(TType));
return serializer.ReadObject(stream) as TType;
}
}
}
Entonces, si tuvieras una clase como esta ...
[DataContract]
public class MusicInfo
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Artist { get; set; }
[DataMember]
public string Genre { get; set; }
[DataMember]
public string Album { get; set; }
[DataMember]
public string AlbumImage { get; set; }
[DataMember]
public string Link { get; set; }
}
Entonces lo usarías así ...
var musicInfo = new MusicInfo
{
Name = "Prince Charming",
Artist = "Metallica",
Genre = "Rock and Metal",
Album = "Reload",
AlbumImage = "http://up203.siz.co.il/up2/u2zzzw4mjayz.png",
Link = "http://f2h.co.il/7779182246886"
};
var serialized = JSONSerializer<MusicInfo>.Serialize(musicInfo);
var deserialized = JSONSerializer<MusicInfo>.DeSerialize(serialized);
JSON.NET
y surgieron otras bibliotecas.