나는 이전에 프로토콜 부프를 이해하고 호기심이 있었기 때문에 GSON의 GSON을 발견했습니다. GSON을 사용하기 시작했습니다.
github 홈페이지 : https://github.com/google/gson
비교 후 GSON 및 기타 기존 Java JSON 클래스 라이브러리는 가장 큰 차이점이 있습니다. 주석을 사용하지 않고 엔티티 클래스를 달성하기 위해 GSON은 직렬화되어야합니다. 동시에 GSON은 주석을 사용하여 직렬화 해야하는 필드를 유연하게 구성 할 수 있습니다.
목록이나지도를 JSON으로 변환하는 것은 매우 간단합니다.
공개 문자열 getJsondata (list <?> list) {gson gson = new Gson (); 문자열 jsonstring = gson.tojson (목록); 반환 jsonstring;}아래에 자세한 예가 있습니다.
예
간단한 객체 변환 및 제네릭으로 목록 변환 :
엔티티 클래스 :
공개 수업 학생 {private int id; 개인 문자열 이름; 개인 데이트 생일; public int getid () {return id; } public void setid (int id) {this.id = id; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } 공개 날짜 getBirthday () {return birthday; } public void setbirthday (날짜 생일) {this.birthday = 생일; } @override public String toString () {return "return"student [withy [recture [le + girthment + ", id =" + id + ", name =" + name + "]"; }}테스트 클래스 :
java.util.arraylist 가져 오기; import java.util.date; Java.util.list 가져 오기; import com.google.gson.gson; import com.google.gson.reflect.typetoken; 공개 클래스 gsontest1 {public static void main (String [] args) {gson gson = new Gson (); 학생 1 = 신입생 (); Student1.SetId (1); Student1.SetName ( "Li Kun"); Student1.setbirthday (새 날짜 ()); // ////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////4 ////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////4 ////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////4 ////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////4 System.out.println ( "JSON에서 간단한 bean ===" + 학생); // 결과 : // JSON에서 간단한 콩 === { "ID": 1, "이름": "Li Kun", "생일": "2012 년 6 월 22 일 8:27:52 AM"} // JSON에서 간단한 bean === 학생 [생일 = Fri 6 월 22 08:52 CST 2012, id = 1, // name = li kun] // //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// Student2 = 신입생 (); Student2.SetId (2); Student2.SetName ( "Cao Guisheng"); Student2.setbirthday (new date ()); 학생 3 = 신입생 (); Student3.setId (3); Student3.setName ( "liu bo"); Student3.setbirthday (new date ()); List <tudent> list = new ArrayList <tudent> (); list.add (student1); List.Add (학생 2); list.add (학생 3); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 결과 : // 제네릭이있는 목록은 JSON == [{ "id": 1, "이름": "li kun", "생일": "2012 년 6 월 22 일 오전 22 일 8:28:52 AM"}, { "id": "2,"이름 ":"Cao Guisheng ","생일 ":"6 월 22 일 8:28:52 AM ", {" ":": ": 3,": 3, "": ":"id ":"id ":"id ":"id. BO ","생일 ":"2012 년 6 월 22 일 8:28:52 AM "}] // 학생 [생일 = Fri 6 월 22 08:28:52 CST 2012, Id = 1, name = li kun] // 학생 [생일 = Fri 6 월 22 08:28:52 CST 2012, ID = 2, ID = 2, 학생 [생일 = CAO GUISHENG] // 이름 = liu bo]}}실행 결과 :
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- PM "}, {"id ": 2,"name ":"cao guisheng ","생일 ":"2012 년 6 월 22 일 9:10:31 pm "}, {"id ": 3,"name ":"liu bo ","생일 ":"2012 년 6 월 22:31 pm "] [생일 = fri jun 21:10:31 cst 2012, id =, id = 1, fri.] 22 21:10:31 CST 2012, id = 2, name = cao guisheng] 학생 [생일 = 4 월 22 일 21:10:31 CST 2012, id = 3, name = liu bo]