Test code:
Package Com.yanek.util.json;import Java.util.arraylist;import Java.util.list;import com.google.gson.gson;import Com.google.gson.gsonbuilder;import Com.google.gson.jsonelement;import Com.google.gson.jsonparser;public Class Gsonutil {/** * @param args */public static void main (string[] args) {Hotel h1=new Hotel (); H1.setid (1); H1.setname ("name1") ; Hotel H2=new (); H2.setid (2); H2.setname ("name2"); Roomtypevo t1=new Roomtypevo () t1.setprice ("a") T1.settypeid (1); T1.settypename ("nnn1"); List<roomtypevo> roomtypevos=new arraylist<roomtypevo> (); Roomtypevos.add (t1); Roomtypevos.add (t1); H1.setroomtypevos (Roomtypevos); Hotel Hotel=new Hotel (); System.out.println ("Json1:::" +bean2json (H1)); String S=bean2json (H1); Hotel=json2bean (S,hotel.class); System.out.println ("Json2:::" +bean2json (hotel)); System.out.println ("Json3:::" +bean2json (Roomtypevos)); String S2=bean2json (Roomtypevos); List<roomtypevo> roomtypevos2=new arraylist<roomtypevo> (); Roomtypevos2=json2bean (S2,list.class); System.oUt.println ("Json4:::" +bean2json (ROOMTYPEVOS2));} private static Gson Gson = new Gsonbuilder (). Create (); public static String Bean2json (Object obj) {return Gson.tojson (obj); } public static <T> T Json2bean (String jsonstr,class<t> objclass) {return Gson.fromjson (JSONSTR, Objclass); public static string Jsonformatter (String uglyjsonstr) {Gson Gson = new Gsonbuilder (). setprettyprinting (). Create (); Jsonparser JP = new Jsonparser (); Jsonelement JE = jp.parse (uglyjsonstr); String prettyjsonstring = Gson.tojson (JE); return prettyjsonstring; }}
The output is as follows:
json1:::{"Roomtypevos": [{"typeID": 1, "TypeName": "Nnn1", "Price": "$"},{"typeID": 1, "TypeName": "Nnn1", "Price": "20" }], "id": 1, "name": "Name1"}json2:::{"Roomtypevos": [{"typeID": 1, "TypeName": "Nnn1", "Price": "},{", "typeID": 1, " TypeName ":" Nnn1 "," price ":" {"}]," id ": 1," name ":" Name1 "}json3:::[{" typeID ": 1," TypeName ":" Nnn1 "," Price ":" 20 "},{" typeID ": 1," TypeName ":" Nnn1 "," Price ":"}]json4:::[{"," typeID ": 1.0," TypeName ":" Nnn1 "," Price ":" $ "},{" typeID ": 1.0 , "TypeName": "Nnn1", "Price": "20"}]
Related entity classes:
package Com.yanek.util.json;import Java.util.list;public class Hotel {public list<roomtypevo> Getroomtypevos () {return Roomtypevos;} public void Setroomtypevos (list<roomtypevo> roomtypevos) {roomtypevos = Roomtypevos;} Private list<roomtypevo> roomtypevos;public int getId () {return ID;} public void setId (int id) {this.id = ID;} Public String GetName () {return name;} public void SetName (String name) {this.name = name;} private int id;private String name;} Package Com.yanek.util.json;public class Roomtypevo {public int gettypeid () {return typeid;} public void Settypeid (int typeid) {This.typeid = typeID;} Public String Gettypename () {return typename;} public void Settypename (String typename) {this.typename = typename;} Public String GetPrice () {return price;} public void Setprice (String price) {this.price = Price;} private int typeid;private string typename;private string price;}