fastJson (ObjectMapper) 和 Gson 物件的初步使用呢(一)
阿新 • • 發佈:2018-12-20
首先,兩者都是json字串的轉換工具,只不過是效能上、使用上不同
首先使用fastJson
//定義一個物件 Student student = new Student("張三","123456","男",20); //建立一個objectMapper 物件,需要匯入依賴包 就是這個包 codehaus.jackson ObjectMapper objectMapper = new ObjectMapper(); //將物件轉換成json字串形式 String s = objectMapper.writeValueAsString(student); //輸出結果:{"username":"張三","password":"123456","gender":"男","age":20} System.out.println(s); //將json字串轉換到map集合中 Map<String,Object> map = objectMapper.readValue(s, Map.class); //輸出的是一個個鍵值對形式 for (Map.Entry<String, Object> entry : map.entrySet()) { System.out.println(entry.getKey()); System.out.println(entry.getValue()); System.out.println("---------------------分割線-----------------------"); } //將json字串再轉換成student物件 Student stu = objectMapper.readValue(s, Student.class); //Student{username='張三', password='123456', gender='男', age=20} System.out.println(stu);
Gson的使用(建議使用)
Student student = new Student("李四","123456","女",18); //使用gson物件將student物件轉換成json字串 String gson_stu = new Gson().toJson(student); //{"username":"李四","password":"123456","gender":"女","age":18} System.out.println(gson_stu); //將json字串轉換成物件的形式 Student stu = new Gson().fromJson(gson_stu, Student.class); //Student{username='李四', password='123456', gender='女', age=18} System.out.println(stu); //將json轉換成map形式 Map<String,Object> map = new Gson().fromJson(gson_stu, Map.class); for (Map.Entry<String, Object> entry : map.entrySet()) { System.out.println(entry.getKey() + "==========>" + entry.getValue()); } //這種嘗試是不可以的 /* List list = new Gson().fromJson(gson_stu, List.class); for (Object o : list) { o.toString(); } */ //定義一個集合,集合中新增多個引用型別的成員 List<Student> list = new ArrayList<Student>(); list.add(student); list.add(new Student("王五","123344","男",20)); list.add(new Student("趙柳","22344545","男",223)); //將物件轉換成json字串格式 String gson_list = new Gson().toJson(list); //[{"username":"李四","password":"123456","gender":"女","age":18},{"username":"王五","password":"123344","gender":"男","age":20},{"username":"趙柳","password":"22344545","gender":"男","age":223}] System.out.println(gson_list); //將該物件轉換成list集合中 =====>這樣做是不行的 // List<Student> list_gson = new Gson().fromJson(gson_list, List.class); // for (Student student1 : list_gson) { // System.out.println(student1); // } //這樣也是不行的 // Student student1 = new Gson().fromJson(gson_list, Student.class); // System.out.println(student1); // Map<String,List<Student>> fromJson = new Gson().fromJson(gson_list, Map.class); // for (Map.Entry<String, List<Student>> entry : fromJson.entrySet()) { // System.out.println(entry.getKey() + "===========>" + entry.getValue()); // } //將json轉換成list集合 ========》成功 List<Student> list1 = new Gson().fromJson(gson_list, new TypeToken<List<Student>>() {}.getType()); for (Student student1 : list1) { System.out.println(student1); } //定義一個Map集合,將map集合轉換成json字串 Map<String,String> map1 = new HashMap<String, String>(); map1.put("111","zhangsan"); map1.put("222","lisi"); String s = new Gson().toJson(map1); //{"111":"zhangsan","222":"lisi"} System.out.println(s); //再將json字串轉換成map物件 Map<String,String> map2 = new Gson().fromJson(s, Map.class); //{111=zhangsan, 222=lisi} System.out.println(map2); //如果map中存放著student物件 Map<String,Student> map3 = new HashMap<String, Student>(); map3.put("狗子",new Student("zhangsna","111","男",20)); map3.put("二蛋",new Student("lisi","222","女",22)); map3.put("瓜皮",new Student("wangwu","333","男",23)); String s1 = new Gson().toJson(map3); //{"二蛋":{"username":"lisi","password":"222","gender":"女","age":22},"狗子":{"username":"zhangsna","password":"111","gender":"男","age":20},"瓜皮":{"username":"wangwu","password":"333","gender":"男","age":23}} System.out.println(s1); //成功 Map<String,Student> map4 = new Gson().fromJson(s1, Map.class); for (Map.Entry<String, Student> entry : map4.entrySet()) { System.out.println(entry.getKey() + "============>" + entry.getValue()); }