其實在以前本身作過的項目裏面不多去接觸JSON,由於Spring提供了@RequestBody和@ResponseBody兩個註解來幫助咱們解析JSON字符串,在本身作前端調用ajax的時候也是直接發送參數到後端,而不是包裝成一個JSON,直到最近在公司作項目時須要我在後端去解析前端發送過來的JSON字符串,才發現本身對JSON不熟悉,今天就寫篇博客來記錄一下。前端
JSON的誕生緣由是由於XML整合到HTML中各個瀏覽器實現的細節不盡相同,因此道格拉斯·克羅克福特(Douglas Crockford) 和 奇普·莫寧斯達(Chip Morningstar)一塊兒從JS的數據類型中提取了一個子集,做爲新的數據交換格式,由於主流的瀏覽器使用了通用的JavaScript引擎組件,因此在解析這種新數據格式時就不存在兼容性問題,因而他們將這種數據格式命名爲 「 JavaScript Object Notation」,縮寫爲 JSON,由此JSON便誕生了!
JSON有2種結構形式java
JSON用[]中括號來表示數組,用{}大括號來表示對象ajax
{ "person":{ "name":"wugui", "age":"21", "sex":"man", "address":{ "province":"廣東省", "city":"深圳市", "county":"龍崗區" } } }
[ { "person":{ "name":"wugui", "age":"21", "sex":"man", "address":{ "province":"廣東省", "city":"深圳市", "county":"龍崗區" } } }, { "person":{ "name":"guiwu", "age":"31", "sex":"woman", "address":{ "province":"廣東省", "city":"深圳市", "county":"南山區" } } } ]
注意:數組能夠包含對象,在對象中也能夠包含數組json
雖然Spring提供了註解幫助咱們來解析JSON,可是在實際工做中不必定使用Spring框架,Java沒有內置的JSON解析庫,所以咱們須要使用第三方庫,好比Fastjson是一個Java庫,能夠將Java對象轉換爲JSON格式,固然它也能夠將JSON字符串轉換爲Java對象。後端
parseObject
方法來將JSON字符串轉換成對象String s = "{\"張三\":21,\"李四\":18,\"王五\":38}";//JSON字符串 Map<String, String> map = JSON.parseObject(s, Map.class); System.out.println(map.toString()); 輸出:{李四=18, 張三=21, 王五=38}
String json="{\"age\":20,\"name\":\"czy\"}"; User user = JSON.parseObject(json, User.class);
toJSONString
方法便可將對象轉換成JSON字符串Map<String, Integer> map = new HashMap<>(); map.put("小A", 18); map.put("小B", 28); map.put("小C", 20); String jsonString = JSON.toJSONString(map); System.out.println(jsonString); 輸出:{"小B":28,"小A":18,"小C":20}
praseAraay
方法來解析數組格式的JSON字符串User[] users = {new User("張三", 12), new User("李四", 20)}; String jsonString = JSON.toJSONString(users);//轉成數組格式的JSON串 List<User> userList = JSON.parseArray(jsonString, User.class); System.out.println(userList); 輸出:[User{name='張三', age=12}, User{name='李四', age=20}]
今天簡單作下記錄,之後忘了的話回頭來看看,但願本篇有幫助到大家,謝謝!數組