c# 使用JSON序列化 DataContractJsonSerializer
c# 可以使用DataContractJsonSerializer 进行JSON的序例化;
需要引用命名空间 using System.Runtime.Serialization.Json;
当不需要序例化时,只需要在相应的字段上加 [NonSerialized]
例如 :
[NonSerialized]
private double m_UpValue;
下面给出序例化的过程:
/// <summary>
/// Serialize T to string
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
public static string Serialize<T>(T item)
{
if (item == null) return string.Empty;
var serializer = new DataContractJsonSerializer(item.GetType());
using (var ms = new MemoryStream())
{
serializer.WriteObject(ms, item);
var sb = new StringBuilder();
sb.Append(Encoding.UTF8.GetString(ms.ToArray()));
return sb.ToString();
}
}
/// <summary>
/// Deserialize string back to T
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
public static T Deserialize<T>(string jsonString)
{
if (string.IsNullOrEmpty(jsonString)) return default(T);
var ser = new DataContractJsonSerializer(typeof(T));
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
{
T jsonObject = (T)ser.ReadObject(ms);
return jsonObject;
}
}

浙公网安备 33010602011771号