JSON數據表示格式簡介(JavaScript對象表示法)


[1] JSON簡介
    > JSON全稱 JavaScript Object Notation
    > 類似於JS中對象的創建的方法
    > JSON和XML一樣,都是一種表示數據的格式
    > 但是JSON比XML的存儲和解析性能要高的多,JSON要比XML高個30%左右。
    <user>
        <name>sunwukong</name>
        <age>18</age>
        <gender>男</gender>
    </user>

    {"name":"孫悟空","age":8,"gender":男}

[2] JSON的格式
    > JSON字符串不方便閱讀,但是傳輸性能好
    > XML方便閱讀,但是傳輸性能差
    > JSON的格式和JS對象類型,但是要求屬性名必須使用雙引號。不能使用單引號,也不能不寫引號!


    > JSON對象中實際就是一組一組的鍵值對的結構,
    鍵和值使用:連接,多個鍵值對之間使用,分開,注意如果是最后一組鍵值對,則千萬不要在加,.
            例如: {"屬性名1":屬性值1,"屬性名2":屬性值2,"屬性名3":屬性值3,"屬性名4":屬性值4}

    > JSON運行屬性值的類型:
        1.字符串
        2.數字
         3.布爾
        4.對象
        5.數組
        6.null

    > 數組:
    [屬性1,屬性2,屬性3,屬性4]

[3] JS中使用JSON
    JSON對象 --> JSON字符串
    JSON.stringify(對象)
    JSON字符串 --> JSON對象
    JSON.parse(JSON字符串)

[4] Java中使用JSON
    > 目前Java中用的比較多的JSON解析工具:
    json-lib --> 使用麻煩,解析性能最差
    Jackson --> 使用較麻煩,解析性能最好
    Gson --> 使用簡單,解析性能中能
    - Gson是谷歌出的一款JSON解析工具,使用簡單,且性能較好。

    Java對象 --> JSON字符串

//把map轉化為json字符串
		Map<String,String> map=new HashMap();
		map.put("name", "張三");
		map.put("hobby", "籃球");
		map.put("genter", "男");
		String str=gson.toJson(map);

   JSON字符串 --> Java對象

Map<String,String> map2=gson.fromJson(str, Map.class);
		System.out.println(map2);

 

[3].通過jQuery實現AJAX
    > 使用get和getJSON都會有緩存問題,並且使用get方法不能傳送較多的數據。
    > post方法不會有緩存的問題,所以我們開發時使用post方法較多。
    [1] post()方法
    $.post(url, [data], [callback], [type])
    參數:
        url:發送AJAX的請求地址,字符串。
        data:發送給服務器的請求參數,JSON格式。
        callback:當前需要獲取服務器發送的響應時,我們可以通過該回調函數。
    jQuery會將響應信息以回調函數的參數的形式返回
    type:響應信息的類型,字符串。一般兩個常用值text、json

    [2] get()方法
    - get方法和post方法使用方式基本一致。

    [3] getJSON()方法
    getJSON(url, [data], [callback])
    getJSON方法和get方法類似,只不過該方法默認的響應類型為JSON,不需要再手動指定。

    [4]下面給出一個小例子:(本例子頁面特別簡單,只為了只實現這一個功能)

先導入jQuery所需要的jar包:

  我將這個jar包導入了WebContent下的js文件夾在(js文件夾是自己建的)。

之后再jsp中引入jQuery

<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.2.1.js">
</script>

  然后就是jsp:

<%@ 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="${pageContext.request.contextPath}/js/jquery-3.2.1.js">
</script>
<script type="text/javascript">
    $(function(){
    	$("#btn").click(function(){
    		var url="${pageContext.request.contextPath}/Servlet1";
    		var json={"name":"zhangsan"};
    		function callback(data){
    			
    		}
    		$.get(url,json,callback);
    	});
    });
</script>
</head>
<body>
<button id="btn">確定</button>
</body>
</html>

  這樣后台就行接收到這個基於jQuery和json的get請求。


免責聲明!

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



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