日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

四种JSON解析工具--(json-libJacksonGsonFastJson)

發布時間:2023/12/10 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 四种JSON解析工具--(json-libJacksonGsonFastJson) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主要分為以下四類:

一、json-lib

json-lib是較早出現且應用最廣泛的json解析工具,但是較多的依賴第三方jar包。

使用json-lib需引入以下jar包:

  • commons-beanutils-1.8.3.jar
  • commons-collections-3.2.1.jar
  • commons-lang-2.6.jar
  • commons-logging-1.1.1.jar
  • ezmorph-1.0.6.jar
  • json-lib-2.4-jdk15.jar

且較復雜的類型轉換json-lib會產生缺陷,出現問題。因此json-lib如今一般無法滿足互聯網化的需求。

使用實例:

jar包及項目結構如下:

實體類Product.java

package cn.cf.domain;/*** 商品實體類* * @author Administrator**/ public class Product {private String name;private Double price;private String category;private Double weight;public Product() {super();}public Product(String name, Double price, String category, Double weight) {super();this.name = name;this.price = price;this.category = category;this.weight = weight;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}public String getCategory() {return category;}public void setCategory(String category) {this.category = category;}public Double getWeight() {return weight;}public void setWeight(Double weight) {this.weight = weight;}@Overridepublic String toString() {return "Product [name=" + name + ", price=" + price + ", category=" + category + ", weight=" + weight + "]";} }

測試代碼TestDemo.java

  • JavaBean/ list/ map轉json

代碼如下:

//創建product對象Product product1 = new Product("火龍果",20d,"水果",2d);Product product2 = new Product("東北散裝珍珠米",10d,"糧食",3d);Product product3 = new Product("排骨",24d,"肉類",0.5d);//創建產品list集合List<Product> list =new ArrayList<Product>();list.add(product1);list.add(product2);list.add(product3);//創建產品map集合Map<String, Product> map = new HashMap<String, Product>();map.put(product1.getName(), product1);map.put(product2.getName(), product2);map.put(product3.getName(), product3);//將product轉換為jsonJSONArray jsonBean = JSONArray.fromObject(product1);System.out.println("輸出product的json數據");System.out.println(jsonBean);//將list集合轉換為jsonJSONArray jsonArray = JSONArray.fromObject(list);System.out.println("輸出list的json數據");System.out.println(jsonArray);//將map集合轉為jsonJSONArray jsonMap = JSONArray.fromObject(map);System.out.println("輸出map的json數據");System.out.println(jsonMap);

結果如下:

  • 使用JsonCofig進行篩選要顯示的數據

    /** 設置篩選條件*/JsonConfig jsonConfig = new JsonConfig();jsonConfig.setExcludes(new String[] {"weight", "category"});//單個bean不顯示重量,分類System.out.println("輸出product篩選的json數據");JSONArray jsonBean1 = JSONArray.fromObject(product1, jsonConfig);System.out.println(jsonBean1);//list不顯示重量分類System.out.println("輸出list篩選的json數據");JSONArray jsonArray1 = JSONArray.fromObject(list, jsonConfig);System.out.println(jsonArray1);//map不顯示重量分類JSONArray jsonMap1 = JSONArray.fromObject(map, jsonConfig);System.out.println("輸出mapt篩選的json數據");System.out.println(jsonMap1);

結果如下:

  • jsonObject轉為JavaBean

    //jsonObject轉換為JavaBeanString str = "{'name':'雞蛋','price':8,'weight':1.3,'category':'禽蛋'}";Product product4 = (Product) JSONObject.toBean(JSONObject.fromObject(str), Product.class);System.out.println(product4);

結果如下:

二、Jackson

jackson相比于json-lib框架,所需要的依賴jar包要少一點,性能較高且簡單易用。

需引入jar包:

  • jackson-core.jar
  • jackson-mapper.jar

實例如下:

  • 項目結構及jar包
  • 實體類同前
  • 測試類

轉json

//創建product對象 Product product1 = new Product("火龍果",20d,"水果",2d); Product product2 = new Product("東北散裝珍珠米",10d,"糧食",3d); Product product3 = new Product("排骨",24d,"肉類",0.5d); //創建產品list集合 List<Product> list =new ArrayList<Product>(); list.add(product1); list.add(product2); list.add(product3); //創建產品map集合 Map<String, Product> map = new HashMap<String, Product>(); map.put(product1.getName(), product1); map.put(product2.getName(), product2); map.put(product3.getName(), product3);//ObjectMapper為Jackson的核心,所有json操作都是用ObjectMapper實現 ObjectMapper mapper = new ObjectMapper();//Product轉化為json String productJson = mapper.writeValueAsString(product1); System.out.println("Product轉化為json"); System.out.println(productJson); //list轉化為json String listJson = mapper.writeValueAsString(list); System.out.println("list轉化為json"); System.out.println(listJson); //map轉化為json String mapJson = mapper.writeValueAsString(map); System.out.println("map轉化為json"); System.out.println(mapJson);

結果如下:

轉化為JavaBean

String str = "{\"name\":\"雞蛋\",\"price\":8,\"weight\":1.3,\"category\":\"禽蛋\"}"; Product product4 = mapper.readValue(str, Product.class); System.out.println(product4);

字符串需使用雙引號,使用單引號報錯

結果如下:

三、Gson

Gson是Google研發的,目前功能最全的Json解析器。主要應用toJson和fromJson兩個轉換函數,無需額外的依賴,使用較方便

使用jar包:

  • gson-2.8.0.jar

實例如下(實體類同上例):

轉化為json

// 創建product對象Product product1 = new Product("火龍果", 20d, "水果", 2d);Product product2 = new Product("東北散裝珍珠米", 10d, "糧食", 3d);Product product3 = new Product("排骨", 24d, "肉類", 0.5d);// 創建產品list集合List<Product> list = new ArrayList<Product>();list.add(product1);list.add(product2);list.add(product3);// 創建產品map集合Map<String, Product> map = new HashMap<String, Product>();map.put(product1.getName(), product1);map.put(product2.getName(), product2);map.put(product3.getName(), product3);// 創建Gson對象 Gson gson = new Gson();//將product轉換為json System.out.println("輸出product的json數據"); String jsonProduct = gson.toJson(product1); System.out.println(jsonProduct); //將list集合轉換為json System.out.println("輸出list的json數據"); String jsonArray = gson.toJson(list); System.out.println(jsonArray); //將map集合轉為json String jsonMap = gson.toJson(map); System.out.println("輸出map的json數據"); System.out.println(jsonMap);

結果如下:

json轉換為實體

String str = "{'name':'雞蛋','price':8,'weight':1.3,'category':'禽蛋'}"; Product product4 = gson.fromJson(str, Product.class); System.out.println(product4);

結果如下:

四、FastJson

FastJson是阿里巴巴的開源框架,速度很快,且無其他依賴

導入jar包:

  • fastjson-1.2.58.jar

實例如下:

轉為json

String jsonProduct = JSON.toJSONString(product1);System.out.println(jsonProduct);String jsonArray = JSON.toJSONString(list);System.out.println(jsonArray);String jsonMap = JSON.toJSONString(map);System.out.println(jsonMap);

結果如下:

json轉為實體:

String str = "{'name':'雞蛋','price':8,'weight':1.3,'category':'禽蛋'}";Product product4 = JSON.parseObject(str, Product.class);System.out.println(product4);

結果如下:

以上是JSON的四種解析工具的基礎用法。詳細的后部再單個補充。

總結

以上是生活随笔為你收集整理的四种JSON解析工具--(json-libJacksonGsonFastJson)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。