Sử dụng lớp chung này để tuần tự hóa/deserialize JSON. Bạn dễ dàng có thể serialize cấu trúc dữ liệu phức tạp như thế này:
Dictionary<string, Tuple<int, int[], bool, string>>
để JSON chuỗi và sau đó lưu nó trong bối cảnh ứng dụng hoặc khác
public class JsonSerializer
{
public string Serialize<T>(T aObject) where T : new()
{
T serializedObj = new T();
MemoryStream ms = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
ser.WriteObject(ms, serializedObj);
byte[] json = ms.ToArray();
ms.Close();
return Encoding.UTF8.GetString(json, 0, json.Length);
}
public T Deserialize<T>(string aJSON) where T : new()
{
T deserializedObj = new T();
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(aJSON));
DataContractJsonSerializer ser = new DataContractJsonSerializer(aJSON.GetType());
deserializedObj = (T)ser.ReadObject(ms);
ms.Close();
return deserializedObj;
}
}
JSON.Net cũng được hỗ trợ và có vẻ như Microsoft có ý định tự mình áp dụng nó * "Chúng tôi trong nhóm web sẽ bao gồm JSON.NET làm JSON serializer mặc định trong API Web khi nó phát hành, vì vậy sẽ tốt đẹp." * từ http://www.hanselman.com/blog/ OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx – Liam
Chỉ cần lưu ý thư viện nhúng cho hiệu suất ** của serialon JSon ** trong .Net! – Babak
@Babak bạn có ý nghĩa gì về sự cẩn thận? Xin hãy giải thích. –