如何在WinRT中取消/序列化JSON?

如何获取对象并将其转换为JSON字符串,然后从字符串返回到该对象,特别是在WinRT中为我的Windows 8 Metro应用程序?

像这样:

using System.IO; using System.Runtime.Serialization.Json; using System.Text; public static T Deserialize(string json) { var _Bytes = Encoding.Unicode.GetBytes(json); using (MemoryStream _Stream = new MemoryStream(_Bytes)) { var _Serializer = new DataContractJsonSerializer(typeof(T)); return (T)_Serializer.ReadObject(_Stream); } } public static string Serialize(object instance) { using (MemoryStream _Stream = new MemoryStream()) { var _Serializer = new DataContractJsonSerializer(instance.GetType()); _Serializer.WriteObject(_Stream, instance); _Stream.Position = 0; using (StreamReader _Reader = new StreamReader(_Stream)) { return _Reader.ReadToEnd(); } } } 

首先使用http://json2csharp.com/生成C#类然后使用http://james.newtonking.com/pages/json-net.aspx进行解析

我的用户类目前看起来像这样:

 public class User { public string id { get; set; } public string username { get; set; } public string full_name { get; set; } public string profile_picture { get; set; } public string bio { get; set; } public string website { get; set; } public Counts counts { get; set; } public static User SingleFromJSON(string jsonString) { return JsonConvert.DeserializeObject(jsonString).data; } public static User MultipleFromJSON(string jsonString) { return JsonConvert.DeserializeObject(jsonString).data; } private class SingleUser { public User data { get; set; } } private class MultipleUsers { public List data { get; set; } } } public class Counts { public int media { get; set; } public int follows { get; set; } public int followed_by { get; set; } } 

超级简单:D