alibaba架包FastJson使用例子
alibaba的架包FastJson可以对json字符串进行快捷的类型转换。下面是一些各种类型转换的使用例子。
一、下载FastJson的架包,并导入项目中,如下:
Maven项目pom.xml配置如下:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.32</version> </dependency>
二、附上代码例子,如下:
1、创建2个实体类,供后面例子使用,如下:
1 public class School { 2 private String id; 3 private String name; 4 List<User> students = new ArrayList<User>(); 5 public String getId() { 6 return id; 7 } 8 public void setId(String id) { 9 this.id = id; 10 } 11 public String getName() { 12 return name; 13 } 14 public void setName(String name) { 15 this.name = name; 16 } 17 public List<User> getStudents() { 18 return students; 19 } 20 public void setStudents(List<User> students) { 21 this.students = students; 22 } 23 }
1 public class User { 2 private String id; 3 private String name; 4 5 public User(){ 6 7 } 8 public User(String id, String name){ 9 this.id = id; 10 this.name = name; 11 } 12 13 public String getId() { 14 return id; 15 } 16 public void setId(String id) { 17 this.id = id; 18 } 19 public String getName() { 20 return name; 21 } 22 public void setName(String name) { 23 this.name = name; 24 } 25 }
2、Json字符串与Map、List、object之间的相互转换例子,如下:
1 import java.util.ArrayList; 2 import java.util.HashMap; 3 import java.util.List; 4 import java.util.Map; 5 6 import com.alibaba.fastjson.JSON; 7 import com.alibaba.fastjson.JSONArray; 8 import com.alibaba.fastjson.JSONObject; 9 10 public class TestFastJson { 11 12 public static void main(String[] args){ 13 json2JsonObject();//将Json字符串转换为JSONObject对象 14 json2JavaBean();//将Json字符串转换为JavaBean对象 15 json2JsonArray();//将Json字符串转换为JSONArray对象 16 json2JavaBeanList();//将Json字符串转换为JavaBean的集合 17 javaBean2Json();//将JavaBean转换为Json格式的数据 18 javaBean2JsonObject();//将JavaBean转换为JSONObject对象 19 json2ListInMap();//从Json字符串的Map中获取List对象 20 list2JsonInMap();//将含list的Map对象转换为Json字符串 21 } 22 23 private static void json2JsonObject() { 24 String s = "{\"name\":\"peter\"}"; 25 JSONObject object = JSON.parseObject(s); 26 System.out.println(object.get("name")); 27 } 28 29 private static void json2JavaBean() { 30 String s = "{\"id\":\"17051801\",\"name\":\"lucy\"}"; 31 User user = JSON.parseObject(s, User.class); 32 System.out.println(user.getId()); 33 System.out.println(user.getName()); 34 } 35 36 private static void json2JsonArray() { 37 String s = "[{\"id\":\"17051801\",\"name\":\"lucy\"},{\"id\":\"17051802\",\"name\":\"peter\"}]"; 38 JSONArray array = JSON.parseArray(s); 39 for (int i = 0; i < array.size(); i++) { 40 //JSONArray中的数据转换为String类型需要在外边加"";不然会报出类型强转异常! 41 String str = array.get(i)+""; 42 JSONObject object = JSON.parseObject(str); 43 System.out.println(object.get("name")); 44 } 45 } 46 47 private static void json2JavaBeanList() { 48 String s = "[{\"id\":\"17051801\",\"name\":\"lucy\"},{\"id\":\"17051802\",\"name\":\"peter\"}]"; 49 List<User> list = JSON.parseArray(s, User.class); 50 for (User user : list) { 51 System.out.println(user.getName()); 52 } 53 } 54 55 private static void javaBean2Json() { 56 User user = new User("17051801", "lucy"); 57 String string = JSON.toJSONString(user); 58 System.out.println(string); 59 } 60 61 private static void javaBean2JsonObject() { 62 User user = new User("17051801", "lucy"); 63 JSONObject json = (JSONObject) JSON.toJSON(user); 64 System.out.println(json.get("id")); 65 } 66 67 private static void json2ListInMap() { 68 String s = "{json:[{id:\"17051801\",\"name\":\"lucy\"},{id:\"17051802\",\"name\":\"peter\"}," 69 + "{id:\"17051803\",\"name\":\"tom\"},{id:\"17051804\",\"name\":\"lily\"}]}"; 70 //将Json字符串转换为JSONObject对象,并取出list对象的值 71 JSONObject object = JSON.parseObject(s); 72 Object objArray = object.get("json"); 73 String str = objArray+""; 74 //方式1:转换成JSONArray对象形式 75 JSONArray array = JSON.parseArray(str); 76 for (int i = 0; i < array.size(); i++) { 77 JSONObject obj = JSON.parseObject(array.get(i)+""); 78 System.out.println(obj.get("name")); 79 } 80 //方式2:转换成List<JavaBean>形式 81 List<User> list = JSON.parseArray(str, User.class); 82 for (User user : list) { 83 System.out.println(user.getName()); 84 } 85 } 86 87 private static void list2JsonInMap() { 88 //方式1:构建一个带有list的JavaBean对象 89 School school = new School(); 90 school.setId("1"); 91 school.setName("schoolA"); 92 93 User user1 = new User(); 94 user1.setId("17051801"); 95 user1.setName("lucy"); 96 User user2 = new User(); 97 user2.setId("17051802"); 98 user2.setName("peter"); 99 100 school.getStudents().add(user1); 101 school.getStudents().add(user2); 102 //将JavaBean对象转换成Json字符串 103 String string1 = JSON.toJSONString(school); 104 System.out.println(string1); 105 106 //方式2:构建一个带有list的Map对象 107 Map<String, Object> map1 = new HashMap<String,Object>(); 108 map1.put("id", "17051801"); 109 map1.put("name", "lucy"); 110 111 Map<String, Object> map2 = new HashMap<String,Object>(); 112 map2.put("id", "17051802"); 113 map2.put("name", "peter"); 114 115 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); 116 list.add(map1); 117 list.add(map2); 118 119 Map<String, Object> map = new HashMap<String,Object>(); 120 map.put("id", "1"); 121 map.put("name", "schoolA"); 122 map.put("students", list); 123 //将map对象转换成Json字符串 124 String string2 = JSON.toJSONString(map); 125 System.out.println(string2); 126 } 127 }
本文来自博客园,作者:PC君,转载请注明原文链接:https://www.cnblogs.com/pcheng/p/6875760.html