初識JSON

前言

其實在以前本身作過的項目裏面不多去接觸JSON,由於Spring提供了@RequestBody和@ResponseBody兩個註解來幫助咱們解析JSON字符串,在本身作前端調用ajax的時候也是直接發送參數到後端,而不是包裝成一個JSON,直到最近在公司作項目時須要我在後端去解析前端發送過來的JSON字符串,才發現本身對JSON不熟悉,今天就寫篇博客來記錄一下。前端

JSON誕生

JSON的誕生緣由是由於XML整合到HTML中各個瀏覽器實現的細節不盡相同,因此道格拉斯·克羅克福特(Douglas Crockford) 和 奇普·莫寧斯達(Chip Morningstar)一塊兒從JS的數據類型中提取了一個子集,做爲新的數據交換格式,由於主流的瀏覽器使用了通用的JavaScript引擎組件,因此在解析這種新數據格式時就不存在兼容性問題,因而他們將這種數據格式命名爲 「 JavaScript Object Notation」,縮寫爲 JSON,由此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

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}
  • 也能夠把Map換成自定義的類,好比下面這樣
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}]

總結

今天簡單作下記錄,之後忘了的話回頭來看看,但願本篇有幫助到大家,謝謝!數組

相關文章
相關標籤/搜索