62,025
社区成员
发帖
与我相关
我的任务
分享
namespace Projects.Water.Web
{
public partial class Default : ExtMemberPage
{
protected void Page_Load(object sender, EventArgs e)
{
RegUserBLL regUserBLL = new RegUserBLL();
aa a = new aa();
a.a = regUserBLL.GetList("*", "status=1");
a.b = 2;
Response.Write(JsonHelpers.JsonSerializer<aa>(a));
}
}
public class aa
{
public object a { get; set; }
public int b { get; set; }
}
public class JsonHelpers
{
#region JsonDeserialize
/// <summary>
/// JSON序列化
/// </summary>
public static string JsonSerializer<T>(T t)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
ser.WriteObject(ms, t);
string jsonString = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return jsonString;
}
/// <summary>
/// JSON反序列化
/// </summary>
public static T JsonDeserialize<T>(string jsonString)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(ms);
return obj;
}
#endregion
}
}
regUserBLL.GetList
这类返回的内容(DataTable容器中的内容)很合可能也有胡乱定义为 object 的子内容。你可能习惯于用空洞的 object 来定义。这些东西都不能自动反序列化。public object a { get; set; }
这类要用一个靠谱的强类型,或者是泛型模板方式的定义,而不能滥用空洞的 object 类型。没有什么 json 可以空洞地反序列化为 object,任何对象类型都要具体化。