• JSON简介


    有关JSON的个人理解:

      JSON其实就是一个独立于任何编程语言的独立的轻量的数据交换的东西,方便于人的阅读和机器的解析。里面的内容还是键值对的形式存在的,可以对其进行增删改查的,但是当从数据库中调用数据的时候,需要对其进行数据的转换。

       对象格式和数组格式可以互相嵌套!!注意:json的key是字符串(不能以数字开头)  json的value是Object

     一、JSON含义:

      JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。

      json是js的原生内容,也就意味着js可以直接取出json对象中的数据.

     json是一种与语言无关的数据交换的格式,作用:使用ajax进行前后台数据交换!     移动端与服务端的数据交换!

      (XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。)

    二、JSON定义:

    var json = {
            键 : 值,
            键 : 值,
            .....
        }

     说明 : json中的键 用双引号括起来  值可以是任意类型的数据  ( 严格的json值不会出现function (){...}   严格的json键用双引号括起来)

    三、JSON字符串和对象的区别:

    字符串:指使用“”双引号或’’单引号包括的字符。例如:var comStr = 'this is string';
    json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";
    json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };

    四、获取JSON数据:

     json.键  或  json["键"]

    五、JSON对象的遍历 :

      使用 for ...in

    六、JSON数据的存和取:

    1、json值的获取 :

       

     json对象.键
     json对象["键"]

    2、json中的值可以是数组

        var json = {

           "url" : ["1.jpg","2.jpg"],

            "con" : ["图片一","图片二"]

        }

    数组中存放json :

       [{"uname":"uname","pwd":111},{"uname":22,"pwd":22},{"uname":33,"pwd":999}] 

     var a = {
                 "person":[{"name":"张三","age":18},{"name":"李四","age":20}],
                 "person1":[{"name":"王五","age":22},{"name":"马六","age":24}]
         
         };
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript">
        function fget(){
            $.get(
                "${pageContext.request.contextPath}/AjaxServlet",//url
                "name=张三",//请求参数
                function(data){
                    alert(data.str)
                },//回调函数
                "json"//返回的类型
            );
        }
        function fpost(){
            $.post(
                "${pageContext.request.contextPath}/AjaxServlet",//url
                "name=张三",//请求参数
                function(data){
                    alert(data.str)
                },//回调函数
                "json"//返回的类型
            );
        }
        function fajax(){
            $.ajax({
                url:"${pageContext.request.contextPath}/AjaxServlet02",//url
                async:true, //是否异步,默认是true代表异步
                data:{"username":"张三"},//请求参数
                type:"post", //请求方式,POST/GET
                success:function(data){ //回调函数
                    alert(data.username)
                },
                dataType:"json"//返回的类型
            });
        }
    
    </script>
    </head>
    <body>
        <input type="button" value="ajax的get请求" onclick="fget()">
        <input type="button" value="ajax的post请求" onclick="fpost()">
        <input type="button" value="ajax的ajax请求" onclick="fajax()">
    </body>
    </html>
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // post解决乱码
            request.setCharacterEncoding("utf-8");
            String username = request.getParameter("username");
            System.out.println(username);
            // 因为write里面必须是“ 并且json里面也必须是" ,所以需要转义”     里面是拼接JSON串
            // 解决乱码
            response.setContentType("text/html;charset=utf-8");
            response.getWriter().write("{"username":""+username+""}");
        }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //post解决乱码
            request.setCharacterEncoding("utf-8");
            String name =request.getParameter("name");
            //get请求处理乱码
            name = new String(name.getBytes("iso8859-1"),"utf-8");
            System.out.println(name);
    //        因为write里面必须是“ 并且json里面也必须是" ,所以需要转义”
            //解决乱码
            response.setContentType("text/html;charset=utf-8");
            response.getWriter().write("{"str":"你好"}");
        }

    七、字符串与对象的转换:

    客户端提交过来的数据一般都是json字符串,有了更好地进行操作(面向对象的方式),所以我们一般都会想办法将json字符串转换为json对象。

    JSON.parse(  )    将字符串转为对象

    JSON.stringify(  ) 将对象({ } [ ])转为字符串

    八、有关JSON的其他操作:

    JSON是JS的一个子集,我们可以遍历其,当然也可以对其进行数据的操作:

    增(加)用add;

    删(除)用delete;

    (修)改用update;

    查(看)用for..in循环进行遍历

  • 相关阅读:
    汉字编码问题
    C语言创建UTF8编码文本文件
    Know more about shared pool subpool
    SCN Headroom与时光倒流到1988年的Oracle数据库
    Know more about Enqueue Deadlock Detection
    11g新特性:RDBMS Component TRACE
    了解你所不知道的SMON功能(十一):OFFLINE UNDO SEGMENT
    了解11g OCM
    Bulk Collect/FORALL的性能测试
    【推荐】DBA必须了解的11g中的一些变化
  • 原文地址:https://www.cnblogs.com/21-forever/p/10907062.html
Copyright © 2020-2023  润新知