jiang270606112 2018-12-01 19:27 采纳率: 0%
浏览 750

JSON序列化问题出在哪???

数据协定名称为“DataTable:http://schemas.datacontract.org/2004/07/System.Data”的类型“System.Data.DataTable”不是所需的类型。请考虑使用 DataContractResolver(如果你正在使用 DataContractSerializer),或将任何未知类型以静态方式添加到已知类型的列表。例如,可以使用 KnownTypeAttribute 属性,或者将未知类型添加到传递给序列化程序的已知类型列表。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Runtime.Serialization.SerializationException: 数据协定名称为“DataTable:http://schemas.datacontract.org/2004/07/System.Data”的类型“System.Data.DataTable”不是所需的类型。请考虑使用 DataContractResolver(如果你正在使用 DataContractSerializer),或将任何未知类型以静态方式添加到已知类型的列表。例如,可以使用 KnownTypeAttribute 属性,或者将未知类型添加到传递给序列化程序的已知类型列表。

源错误:

行 43: ser.WriteObject(ms, t);
行 44: string jsonString = Encoding.UTF8.GetString(ms.ToArray());
行 45: ms.Close();
行 46: return jsonString;
行 47: }

源文件: F:\Projects.Spread\Projects.Water.Web\Default.aspx.cs 行: 45

 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

    }
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 sub地址DHCP问题
    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大