1_GSON 框架技術
1)特色:編碼簡潔,谷歌官方推薦 java
2)下載地址:https://mvnrepository.com/artifact/com.google.code.gson/gson json
1.1_將 json 格式的字符串{}轉換爲 Java 對象
1)用到的 API <T> T fromJson(String json, Class<T> classOfT);//將 json 對象轉換爲 Java 對象 的方法 注意:要求 json 對象中的 key 的名稱與 java 對象對應的類中的屬性名要相同
2)使用步驟數組
(1)將 Gson 的 jar 包導入到項目中 框架
(2)建立Gson對象 : Gson gson = new Gson(); 測試
(3)經過建立的Gson對象調用fromJson()方法,返回該JSON數據對應的Java對象 ShopInfo shopInfo = gson.fromJson(json, ShopInfo.class);google
3)測試數據 編碼
{ "id":2, "name":"大蝦", "price":12.3, "imagePath":"http://192.168.10.165:8080/L05_Server/images/f1.jpg" }
4)例子spa
// (1) 將json格式的字符串{ }轉換爲 Java對象 private void jsonToJavaObject() { // 1 獲取或建立 json String json = "{\n" + "\t\"id\":2, \"name\":\"大蝦\", \n" + "\t\"price\":12.3, \n" + "\t\"imagePath\":\"http://192.168.10.165:8080/L05_Server/images/f1.jpg\"\n" + "}\n"; // 2 解析 json Gson gson = new Gson(); ShopInfo shopInfo = gson.fromJson(json, ShopInfo.class); // 3 顯示 JSON數據 tv_native_orignal.setText(json); tv_native_last.setText(shopInfo.toString()); }
1.2_將 json 格式的字符串[]轉換爲 Java 對象的 List
1)用到的 API T fromJson(String json, Type typeOfT);//將 json 數組轉換爲 Java 對象的 list code
注意:要求 json 對象中的 key 的名稱與 java 對象對應的類中的屬性名要相同
2)使用步驟 對象
(1)將 Gson 的 jar 包導入到項目中
(2)建立Gson對象 : Gson gson = new Gson();
(3)經過建立的Gson對象調用fromJson()方法,返回該JSON數據對應的Java集合: List<ShopInfo> shops = gson.fromJson(json, new TypeToken<List<ShopInfo>>() {}.getType());
3)測試數據
[ { "id":1, "imagePath":"http://192.168.10.165:8080/f1.jpg", "name":"大蝦1", "price":12.3 }, { "id":2, "imagePath":"http://192.168.10.165:8080/f2.jpg", "name":"大蝦2", "price":12.5 } ]
4)例子
//(2) 將 json格式的字符串 [] 轉換爲 Java對象的 List private void jsonToJavaList() { // 1 獲取或建立 json String json = "[\n" + " {\n" + " \"id\": 1,\n" + " \"imagePath\": \"http://192.168.10.165:8080/f1.jpg\",\n" + " \"name\": \"大蝦 1\",\n" + " \"price\": 12.3\n" + " },\n" + " {\n" + " \"id\": 2,\n" + " \"imagePath\": \"http://192.168.10.165:8080/f2.jpg\",\n" + " \"name\": \"大蝦 2\",\n" + " \"price\": 12.5\n" + " }\n" + "]"; // 2 解析 json Gson gson = new Gson(); List<ShopInfo> shops = gson.fromJson(json, new TypeToken<List<ShopInfo>>() { }.getType()); // 3 顯示JSON數據 tv_native_orignal.setText(json); tv_native_last.setText(shops.toString()); }
1.3_將 Java 對象轉換爲 json 字符串{}
1)用到的 API String toJson(Object src);
2)使用步驟
(1)將 Gson 的 jar 包導入到項目中
(2)建立Gson對象 : Gson gson = new Gson();
(3)經過建立的Gson對象調用toJson()方法,返回json數據:
ShopInfo shop = new ShopInfo(1, "鮑魚", 250.0, "");
String json = gson.toJson(shop);
3)例子
/** * (3) 將 Java對象轉換爲 json字符串 {} */ private void javaToJsonObject() { // 1 獲取或建立 Java 對象 ShopInfo shop = new ShopInfo(1, "鮑魚", 250.0, ""); // 2 生成 JSON數據 Gson gson = new Gson(); String json = gson.toJson(shop); // 3 展現 json數據 tv_native_orignal.setText(shop.toString()); tv_native_last.setText(json); }
1.4_將 Java 對象的 List 轉換爲 json 字符串[]
1)用到的 API String toJson(Object src);
2)使用步驟
(1)將 Gson 的 jar 包導入到項目中
(2)建立Gson對象 : Gson gson = new Gson();
(3)經過建立的Gson對象調用toJson()方法,返回json數據:
List<ShopInfo> shops = new ArrayList<>();
String json = gson.toJson(shops);
3)例子
/** * (4) 將Java對象的List轉換爲json字符串 [] */ private void javaToJsonList() { // 1 獲取或建立 Java 集合 List<ShopInfo> shops = new ArrayList<>(); ShopInfo baoyu = new ShopInfo(1, "鮑魚", 250, "baoyu"); ShopInfo haisen = new ShopInfo(2, "海蔘", 251, "haisen"); shops.add(baoyu); shops.add(haisen); // 2 生成 JSON數據 Gson gson = new Gson(); String json = gson.toJson(shops); // 3 展現 json數據 tv_native_orignal.setText(shops.toString()); tv_native_last.setText(json); }