標籤:函數 parse [1] pat ati name head map 資料
[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是Google出的一款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請求。
JSON資料表示格式簡介(JavaScript對象標記法)