public class JsonHelper
{
#region 生成json格式数据
public static string GetJson<T>(T obj)
{
string szJson = string.Empty;
DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
using (MemoryStream stream = new MemoryStream())
{
json.WriteObject(stream, obj);
szJson = Encoding.UTF8.GetString(stream.ToArray());
}
return szJson;
}
#endregion
#region 解析json格式数据
public static T ParseFromJson<T>(string szJson)
{
T obj = Activator.CreateInstance<T>();
using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
return (T)serializer.ReadObject(stream);
}
}
#endregion
}
注:如果vs没有打补丁会出现这个问题无法序列化类型“Model.Users”。可以考虑使用 DataContractAttribute 属性对其进行标记,或使用 DataMemberAttribute 属性标记所有想要序列化的该类型的成员。 、
我使用的vs2008打完补丁问题就解决了