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循环进行遍历

原文地址:https://www.cnblogs.com/21-forever/p/10907062.html