1_FastJson 框架技术
1)特点:Fastjson 是一个 Java 语言编写的高性能功能完善的 JSON 库。它采用一种“假定有 序快速匹配”的算法,把 JSON Parse 的性能提升到极致,是目前 Java 语言中最快的 JSON 库。
2)下载地址:https://github.com/alibaba/fastjson/wiki
1.1_将 json 格式的字符串{}转换为 Java 对象
1)用到的 API < T > T parseObject(String json, Class<T> classOfT); //将 json 对象转换为 Java 对象的方法 注意:要求 json 对象中的 key 的名称与 java 对象对应的类中的属性名要相同
2)使用步骤
(1)导入 fastjson 的 jar 包
(2)JSON调用parseObject()方法,获取转换后的Java对象 例如:ShopInfo shopInfo = JSON.parseObject(json, ShopInfo.class);
3)测试数据
{ "id":2, "name":"大虾", "price":12.3, "imagePath":"http://192.168.10.165:8080/L05_Server/images/f1.jpg" }
4)例子
// (1)将json格式的字符串{}转换为Java对象 private void jsonToJavaObjectByFastJson() { // 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数据 ShopInfo shopInfo = JSON.parseObject(json, ShopInfo.class); // 3 显示数据 tv_fastjson_orignal.setText(json); tv_fastjson_last.setText(shopInfo.toString()); }
1.2_将 json 格式的字符串[]转换为 Java 对象的 List
1)用到的 API List<T> parseArray(String json,Class<T> classOfT);//将 json 数组转换为 Java 对 象的 list 注意:要求 json 对象中的 key 的名称与 java 对象对应的类中的属性名要相同
2)使用步骤
(1)导入 fastjson 的 jar 包
(2)JSON调用parseArray()方法,获取转换后的Java集合
例如:List<ShopInfo> shopInfos = JSON.parseArray(json, ShopInfo.class);
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 jsonToJavaListByFastJson() { // 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数据 List<ShopInfo> shopInfos = JSON.parseArray(json, ShopInfo.class); // 3 显示数据 tv_fastjson_orignal.setText(json); tv_fastjson_last.setText(shopInfos.toString()); }
1.3_将 Java 对象转换为 json 字符串{}
1)用到的 API String toJSONString(Object object);
2)使用步骤
(1)导入 fastjson 的 jar 包
(2)JSON调用toJSONString()方法,获取转换后的json数据 例如:
ShopInfo shopInfo = new ShopInfo(1, "鲍鱼", 250.0, "baoyu");
String json = JSON.toJSONString(shopInfo);
3)例子
// ( 3 )将 Java对象转换为 json字符串 {} private void javaToJsonObjectByFastJson() { // 1 获取 Java对象 ShopInfo shopInfo = new ShopInfo(1, "鲍鱼", 250.0, "baoyu"); // 2 生成 JSON数据 String json = JSON.toJSONString(shopInfo); // 3 数据显示 tv_fastjson_orignal.setText(shopInfo.toString()); tv_fastjson_last.setText(json); }
1.4_将 Java 对象的 List 转换为 json 字符串[]
1)用到的 API String toJSONString(Object object);
2)使用步骤
(1)导入 fastjson 的 jar 包
(2)JSON调用toJSONString()方法,获取转换后的json数据 例如:
List<ShopInfo> shops = new ArrayList<>();
ShopInfo baoyu = new ShopInfo(1, "鲍鱼", 250.0, "baoyu");
ShopInfo longxia = new ShopInfo(2, "龙虾", 251.0, "longxia");
shops.add(baoyu); shops.add(longxia);
String json = JSON.toJSONString(shops);
3)例子
// ( 4 )将 Java对象的 List转换为 json字符串 [] private void javaToJsonArrayByFastJson() { // 1 获取 Java集合 List<ShopInfo> shops = new ArrayList<>(); ShopInfo baoyu = new ShopInfo(1, "鲍鱼", 250.0, "baoyu"); ShopInfo longxia = new ShopInfo(2, "龙虾", 251.0, "longxia"); shops.add(baoyu); shops.add(longxia); // 2 生成 JSON数据 String json = JSON.toJSONString(shops); // 3 数据显示 tv_fastjson_orignal.setText(shops.toString()); tv_fastjson_last.setText(json); }