Tôi sử dụng cái này ... nhưng chưa bao giờ thực hiện bất kỳ phát triển ứng dụng metro nào, vì vậy tôi không biết bất kỳ hạn chế nào đối với các thư viện có sẵn cho bạn. (lưu ý, bạn sẽ cần đánh dấu các lớp của mình là với các thuộc tính DataContract và 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;
}
}
}
Vì vậy, nếu bạn có một lớp học như thế này ...
[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; }
}
Sau đó, bạn sẽ sử dụng nó như thế này ...
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
và các thư viện khác đã ra đời.