什麼是Json,Json如何使用

  JavaScript Object Notation:javascript的對象表示法。javascript


  這是一種能傳遞對象的語法,能夠是鍵值對,數組,以及其餘對象。  
  輕量級的數據傳輸方法。html

  json格式:java

  { key :{ key : [ { key :value ,key :value } ] } },靈活組合。json

  { } : 表示一個集合,容器
  [ ] :裏面裝數組,集合
  鍵值對之間用冒號隔開,數組的元素用逗號隔開。後端

  

  他不是面向對象的,可是較於javascript他更具備分析性,複用性。先後端均可使用。
  json的值能夠是:int float string boolean 數組 對象。
  數組

  json方法:
  JSON.parse():該方法用於解析JSON類型的字符串而且返回對應的值。
  JSON.stringify():該方法一樣返回與指定值對應的JSON字符串。安全

  

  JavaScript能夠用eval()方法將json文本轉換爲javascript對象。
  var obj = eval ( " (" + json + " ) " );測試

  注意:javascript的eval()方法可編譯執行任何javascript代碼可是這並不安全,若是使用json解析器將json轉換爲javascript就會更安全spa

  json格式的轉換,對象,集合:(官方的json包和阿里巴巴的json包)
  code

  官方:不能一次拿到對象的全部屬性,一次只能取單一的值:
    eg: user對象:有name id
      轉換 JSONObject userJson = new JSONObject(user);
      獲取 String userName = userJson.getString("name");
        int userId = userJson.getInt("age");
      user集合list
      轉換:JSONArray userJsonArray = new JSONArray(list);
      獲取:JSONObiect userObj = userJsonArray.getJSONObject(0);
  阿里巴巴:fastJson包
    eg:user對象:能夠直接得到該對象
      轉換:String  userFast =  JSON.toJSONString(user);----json字符串

      獲取:User u1 = JSONObject.parseObject(fastUser,User.class);
      User集合 : 能夠直接得到該對象集合
      轉換: String fastList = new JSONArray(list);
      獲取: list<User> fastList = JSONArray.parseArray(fastList,User.class)
  

  注意:測試的時候注意方法名,兩者方法名同樣,須要全名引用。

  

 1 import com.alibaba.fastjson.JSON;  2 import org.json.JSONArray;  3 import org.json.JSONException;  4 import org.json.JSONObject;  5 
 6 import java.util.ArrayList;  7 import java.util.List;  8 
 9 public class TestJson { 10     public static void main(String[] args) throws JSONException { 11 
12         List<User> list = new ArrayList<>(); 13 
14         User user1 = new User(12,"張三"); 15         User user2 = new User(13,"李四"); 16  list.add(user1); 17  list.add(user2); 18 
19         System.out.println("---------------------------"); 20         System.out.println("            官方jar包測試"); 21         //org.json 轉換對象測試
22         JSONObject userObj = new JSONObject(user1); 23         //getString須要異常拋出防止key值不存在
24         System.out.println("拿到該對象的id值: "+userObj.getString("id")); 25         //org.json 轉換集合測試
26         JSONArray userList = new JSONArray(list); 27         //get方法拿到集合下標,須要拋出下標不存在的異常
28         System.out.println("拿到該集合下標爲0的值: "+userList.get(0)); 29         User user3 = (User) userList.get(0); 30         System.out.println("輸出對象:"+user3.toString()); 31         String userStr = new JSONObject(user1).toString(); 32         System.out.println("直接打印對象:"+user1.toString()); 33         System.out.println("對象轉換json字符串:"+userStr); 34         System.out.println("直接打印集合: "+list); 35         //對象轉json字符串
36         String userlistStr = new JSONArray(list).toString(); 37         System.out.println("集合轉換json字符串: " + userlistStr); 38         System.out.println("---------------------------"); 39 
40         //阿里巴巴的fastJson包測試
41         System.out.println("---------------------------"); 42         System.out.println("            阿里巴巴fastJson包測試"); 43         //com.alibaba.fastjson包測試 因爲方法重名,使用全名 44         //直接轉換json字符串
45         String userFast = JSON.toJSONString(user1); 46         System.out.println("fastjson轉換對象爲json字符串: "+userFast); 47         String userlistFast = JSON.toJSONString(list); 48         System.out.println("fastjson直接轉換集合爲json字符串: "+userlistFast); 49 
50         //json字符串轉換爲json對象
51         com.alibaba.fastjson.JSONObject userFast2 = JSON.parseObject(userFast); 52         System.out.println("fastjson將json字符串轉換的json對象:"+userFast2); 53         //json字符串轉換爲json集合
54         com.alibaba.fastjson.JSONArray userlistFast2 = JSON.parseArray(userlistFast); 55         System.out.println("fastjson將json字符串轉換的json集合:"+userlistFast2); 56  } 57 }
--------------------------- 官方jar包測試 拿到該對象的id值: 12 拿到該集合下標爲0的值: User{id=12, name='張三'} 輸出對象:User{id=12, name='張三'} 直接打印對象:User{id=12, name='張三'} 對象轉換json字符串:{"name":"張三","id":12} 直接打印集合: [User{id=12, name='張三'}, User{id=13, name='李四'}] 集合轉換json字符串: ["User{id=12, name='張三'}","User{id=13, name='李四'}"] ---------------------------
--------------------------- 阿里巴巴fastJson包測試 fastjson轉換對象爲json字符串: {"id":12,"name":"張三"} fastjson直接轉換集合爲json字符串: [{"id":12,"name":"張三"},{"id":13,"name":"李四"}] fastjson將json字符串轉換的json對象:{"name":"張三","id":12} fastjson將json字符串轉換的json集合:[{"name":"張三","id":12},{"name":"李四","id":13}]

 

原文出處:https://www.cnblogs.com/Ruoqian/p/rq207_02.html

相關文章
相關標籤/搜索