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); }