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循環進行遍歷


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM