Jquery Json解析

JSON的优点:

1、基于纯文本,跨平台传递极其简单;

2、Javascript原生支持,后台语言几乎全部支持;

3、轻量级数据格式,占用字符数量极少,特别适合互联网传递;

4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的;

5、容易编写和解析,当然前提是你要知道数据结构;

JSON的缺点当然也有,但在作者看来实在是无关紧要的东西,所以不再单独说明。

 一句话概括就是:简单,跨平台、轻量级、可读性强、容易编写和解析

JSON的格式或者叫规则:

JSON能够以非常简单的方式来描述数据结构,XML能做的它都能做,因此在跨平台方面两者完全不分伯仲。

1、JSON只有两种数据类型描述符,大括号{}和方括号[],其余英文冒号:是映射符,英文逗号,是分隔符,英文双引号""是定义符。

2、大括号{}用来描述一组“不同类型的无序键值对集合”(每个键值对可以理解为OOP的属性描述),方括号[]用来描述一组“相同类型的有序数据集合”(可对应OOP的数组)。

3、上述两种集合中若有多个子项,则通过英文逗号,进行分隔。

4、键值对以英文冒号:进行分隔,并且建议键名都加上英文双引号"",以便于不同语言的解析。

5、JSON内部常用数据类型无非就是字符串、数字、布尔、日期、null 这么几个,字符串必须用双引号引起来,其余的都不用,日期类型比较特殊,这里就不展开讲述了,只是建议如果客户端没有按日期排序功能需求的话,那么把日期时间直接作为字符串传递就好,可以省去很多麻烦。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>jquery获取json数据演示页面</title>
    <script src="jquery-1.8.3.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function getData() {
            $("#list").html(""); //清空列表中的数据
            //发送ajax请求
            $.getJSON(
            "jsondata.ashx", //产生JSON数据的服务端页面
             {name: "test", age: 20 }, //向服务器发出的查询字符串(此参数可选)
            //对返回的JSON数据进行处理,本例以列表的形式呈现
            function (json) {
            //循环取json中的数据,并呈现在列表中
            $.each(json, function (i) {
            $("#list").append("<li>name:" + json[i].name + "&nbsp; Age:" + json[i].age + "</li>")
           });
         });
        }
    </script>
</head>
<body>
    <input id="Button1" type="button" value="获取数据" onclick="getData()" />
    <ul id="list">
    </ul>
</body>
</html>
<%@ WebHandler Language="C#" Class="jsonData" %>

using System;
using System.Web;

public class jsonData : IHttpHandler {

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        string data = "[{name:"ants",age:24},{name:"lele",age:23}]";//构建的json数据
        //下面两句是用来测试前台向此页面发出的查询字符
        string querystrname = context.Request.QueryString.GetValues("name")[0];//取查询字符串中namer的值
        string querystage = context.Request.QueryString.GetValues("age")[0];//取查询字符串中age的值

        context.Response.Write(data);
    }
    public bool IsReusable {
        get {
            return false;
        }
    }

}
原文地址:https://www.cnblogs.com/panmy/p/5653640.html