Я використовую це ... але ніколи не розробляв жодної програми для метро, тому я не знаю жодних обмежень щодо доступних для вас бібліотек. (зверніть увагу, вам потрібно буде позначити свої класи як з атрибутами DataContract та 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;
}
}
}
Отже, якби у вас був такий клас ...
[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; }
}
Тоді ти використовував би його так ...
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
та інших бібліотек.