Ich benutze dies ... habe aber noch nie eine Metro-App-Entwicklung durchgeführt, daher kenne ich keine Einschränkungen für Bibliotheken, die Ihnen zur Verfügung stehen. (Beachten Sie, dass Sie Ihre Klassen wie mit den Attributen DataContract und DataMember markieren müssen.)
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;
}
}
}
Also, wenn Sie eine Klasse wie diese hatten ...
[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; }
}
Dann würden Sie es so verwenden ...
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
und andere Bibliotheken entstanden sind.