Json序列化和反序列化指的是:对象序列化为JSON,并可用于从 JSON 反序列化对象

在.net 3.5中已支持JSON,引用命名空间:

using System.Web.Script.Serialization;

用其中:JavaScriptSerializer类进行操作,

public string ToJson(object o)

{

  JavaScriptSerializer servializer = new JavaScriptSerializer();

    return servializer.Serialize(o);

 }

在json.ashx处理页面中,Code:

class tempclass

    {

        private string _IP;

        public string IP

        {

            get { return _IP; }

            set { _IP = value; }

        }

        private string _country;

        public string Country1

        {

            get { return _country; }

            set { _country = value; }

        }

        private string _city;

        public string City1

        {

            get { return _city; }

            set { _city = value; }

        }

}

把数据库中数据至泛型集合中。。。。

List<tempclass> templist = new List<tempclass>();

                foreach (DataRow item in ds.Tables[0].Rows)

                {

                    templist.Add(new tempclass()

                    {

                        IP = item["IP4"].ToString(),

                        Country1 = item["country"].ToString(),

                        City1 = item["city"].ToString()

                    });

                }

 

System.Text.StringBuilder sb = new System.Text.StringBuilder();

   sb.Append("{");

   sb.Append("totalCount:");

   sb.Append(totalCount.ToString());

   sb.Append(",data:");

   sb.Append(ToJson(templist)); //序列化从数据库中读取的数据集

   sb.Append("}");

   context.Response.ContentType = "text/plain";

   context.Response.Write(sb.ToString());

   context.Response.End();

或者用LinQ获取数据源就更为简单了:

var dslinq = from p in dss.Tables[0].AsEnumerable()

                             select new {

                               IP = p.Field<string>("IP4"),

                               country = p.Field<string>("country"),

                              city = p.Field<string>("city")

                 };

 

接下来就是客户端读取json数据并显示,这是用jQuery的$.ajax实现:

 $(document).ready(function(){

   $.ajax({

     type:"POST",

     dataType:"json",

     url:"/json.ashx",

     success:function(msg){

       $.each(msg.data,function(i,item){

         $("<tr class='newrow'></tr>").append("<td>" + item.IP + "</td>" +

                 "<td>" + item.country + "</td>" +

                 "<td>" + item.city + "</td>").appendTo($("#List tbody"));

                });

              }

           }); 

显示结果如下:

 });

.NET中JSON序列化(数据集转JSON)的更多相关文章

  1. [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类

    [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类 本节导读: 关于JSON序列化,不能 ...

  2. day5-python中的序列化与反序列化-json&pickle

    一.概述 玩过稍微大型一点的游戏的朋友都知道,很多游戏的存档功能使得我们可以方便地迅速进入上一次退出的状态(包括装备.等级.经验值等在内的一切运行时数据),那么在程序开发中也存在这样的需求:比较简单的 ...

  3. System.Text.Json 序列化对所有 JSON 属性名称使用 camel 大小写

    asp.net core3.x 新增的序列号接口System.Text.Json 序列化时,如果要对所有 JSON 属性名称使用 camel 大小写 将 JsonSerializerOptions.P ...

  4. Asp.Net Core中Json序列化处理整理

    一.Asp.Net Core中的Json序列化处理使用的是Newtonsoft.Json,更多参考:C# Newtonsoft.Json JsonSerializerSettings配置序列化操作,C ...

  5. WPF中的常用布局 栈的实现 一个关于素数的神奇性质 C# defualt关键字默认值用法 接口通俗理解 C# Json序列化和反序列化 ASP.NET CORE系列【五】webapi整理以及RESTful风格化

    WPF中的常用布局   一 写在开头1.1 写在开头微软是一家伟大的公司.评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好,应该抛弃对微软和微软的技术的偏见. 1.2 本文内容本文主要内容 ...

  6. 解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json

    1..Net开源Json序列化工具Newtonsoft.Json中提供了解决序列化的循环引用问题: 方式1:指定Json序列化配置为 ReferenceLoopHandling.Ignore 方式2: ...

  7. 解决.Net MVC EntityFramework Json 序列化循环引用问题.

    以前都是到处看博客,今天小菜也做点贡献,希望能帮到大家. 废话不多说,直接进入正题. 用过.net MVC的同学应该都被json序列化报循环引用错误这个问题骚扰过.网上有一些解决办法,但是都治标不治本 ...

  8. Python常用标准库(pickle序列化和JSON序列化)

    常用的标准库 序列化模块 import pickle 序列化和反序列化 把不能直接存储的数据变得可存储,这个过程叫做序列化.把文件中的数据拿出来,回复称原来的数据类型,这个过程叫做反序列化. 在文件中 ...

  9. Redis读取出错,JSON序列化的问题

    报错 org.springframework.web.util.NestedServletException: Request processing failed; nested exception ...

随机推荐

  1. This page is about building Firefox Desktop

    This page is about building Firefox Desktop The Mozilla build system, like the rest of the Mozilla c ...

  2. u-boot移植(十三)---代码修改---裁剪及环境变量 一

    一.内核裁剪 内核的裁剪首先就是修改我们的配置文件,即 include/configs/jz2440.h 文件,里面定义的很多宏,我们也许用不上的就要去掉. /* * (C) Copyright 20 ...

  3. string字符串js操作

    String 对象方法 方法 描述 anchor() 创建 HTML 锚. big() 用大号字体显示字符串. blink() 显示闪动字符串. bold() 使用粗体显示字符串. charAt() ...

  4. luogu P1437 [HNOI2004]尻♂砖块

    传送门 想明白了其实不难 强行瞎扯 这题的限制比较烦,导致了一行行转移几乎不能做(吧) 那么一列列转移呢? 设\(f_{i,j,k}\)表示前\(i\)列,取\(j\)个,其中第\(i\)列取从上往下 ...

  5. python初步学习-import和datetime模块

    模块 一个完整大型的python程序是由模块和包的形式组织起来的,可见模块在python中的重要性.模块是一种组织型式,它许多有关联(关系)的代码组织放到单独的独立文件中.简单的说,可以把模块理解为一 ...

  6. 关于cc -o命令

    这个命令很灵活,格式是: cc -o 目标二进制可执行文件 文件1 文件2 文件3 ..... 其中目标文件后面的文件,可为源代码,也可为二进制文件,也可为库文件 比如: //a.c #include ...

  7. C++11模板友元语法

    第 1 类: 普通类A的 普通类B 友元(一对一友好关系): 无需前置声明class B,当class B第一次出现在friend声明中时,该名字被隐式地认为可见. class A { friend ...

  8. 让webstrom更好用的设置

    一.让webstrom在编辑vue项目时更快 1.在webstrom的项目管理树中,找到node_modules文件夹,在文件夹上点右键,在出来的右键菜单中选择“Mark Directory as” ...

  9. 2017-2018-2 20155303『网络对抗技术』Exp5:MSF基础应用

    2017-2018-2 20155303『网络对抗技术』Exp5:MSF基础应用 --------CONTENTS-------- 一.原理与实践说明 1.实践内容 2.预备知识 3.基础问题 二.实 ...

  10. Maven入门-依赖管理(Jar包管理)(二)

    1       依赖管理(Jar包管理) 1.添加依赖