Newtonsoft将Dataset转换成Json的问题

丶艾洛依 2017-11-28 05:09:25
我写了一个html和一个ashx
ashx通过查询数据库获得了一个数据集合Dataset
我想通过Dataset转换成Json传给前台再循环赋值给table输出,但是输出是一堆的undefined
然后我把它的值赋给文本域,发现传输的Json好像不是标准格式,开头有一个{"Table":,我把这个删除掉,table就能取到值了
但是网上从查的很多方法来看,好像Dataset转换后一定有一个{"Table":,我想请教一下,有没有什么方法能去掉这个玩意,我自己研究了半天,也在网上找了一下午,一点收获没有。


...全文
659 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 版主 2017-11-29
  • 打赏
  • 举报
回复
不要使用 dataset。而选择使用 datatable就可以了。 因为dataset是table的数据集。 对于序列化来说,他不知道table数组中到底存在一个还是多个。 所以,你直接对datatable序列化就行了。
丶艾洛依 2017-11-29
  • 打赏
  • 举报
回复

我自己解决了问题 原来我没有在ajax那端 写dataType: "json", 导致接收的数据成为了字符串 然后我把代码改成了如下形式 就完全没有问题了 如果不写那段代码 传过来的数据始终是string类型 所以不能对其进行进一步的操作

希望能帮到需要的人
丶艾洛依 2017-11-29
  • 打赏
  • 举报
回复
引用 5 楼 daixf_csdn 的回复:
要去掉table,就将DataTable转换json,不要用Dataset转换。 var table = ds.Tables[0];
引用 5 楼 daixf_csdn 的回复:
要去掉table,就将DataTable转换json,不要用Dataset转换。 var table = ds.Tables[0];
我既然说用Dataset转换 那就肯定是只能用这个 不然我也知道用datatable转json
誰是方長 2017-11-29
  • 打赏
  • 举报
回复
直接转换成类!然后在直接转换成JSON
insus 2017-11-29
  • 打赏
  • 举报
回复
DataSet与DataSet很接近,可以参考下面的DataTable转换为json: http://www.cnblogs.com/insus/p/3713459.html or: http://www.cnblogs.com/insus/p/5034995.html or: http://www.cnblogs.com/insus/p/4083498.html
圣殿骑士18 2017-11-28
  • 打赏
  • 举报
回复
要去掉table,就将DataTable转换json,不要用Dataset转换。 var table = ds.Tables[0];
圣殿骑士18 2017-11-28
  • 打赏
  • 举报
回复
/// <summary>
         /// 将DataTable对象数据转为List泛型数据
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <param name="dataTable"></param>
         /// <returns></returns>
        public static List<T> ToList<T>(this DataTable dataTable)
        {
            if (dataTable == null) throw new ArgumentNullException("dataTable");

            T template = Activator.CreateInstance<T>();
            PropertyInfo[] pis = template.GetType().GetProperties();
            if (pis == null || pis.Length <= 0) throw new CustomException(string.Format("类型{0}没有定义属性!", template.GetType()));

            //获取属性列表
            List<T> list = new List<T>();
            foreach (DataRow dRow in dataTable.Rows)
            {
                T item = Activator.CreateInstance<T>();
                foreach (PropertyInfo pi in pis)
                {
                    string propertyName = pi.Name;
                    if (!dataTable.Columns.Contains(propertyName)) continue;

                    object propertyValue = dRow[propertyName];
                    pi.SetValue(item, propertyValue, null);
                }

                list.Add(item);
            }

            return list;
        }
圣殿骑士18 2017-11-28
  • 打赏
  • 举报
回复
你还是先把dataset装成List<T>,然后List<T>转json就简单了。
ying1234 2017-11-28
  • 打赏
  • 举报
回复
你自已写个方法把datatable转成json 不就行了,想什么的格式就什么样的格式
丶艾洛依 2017-11-28
  • 打赏
  • 举报
回复
简而言之 Dataset利用Newtonsoft转换Json后,如何去掉{"Table":

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧