1.将Java对象转换成 json字符串
Person p1=new Person(); p1.setName("sunshine"); p1.setAge(26); String jsonStr=JSONObject.fromObject(p1).toString();2.将Java 集合转换成 json字符串
Person p1=new Person();p1.setName("A1");p1.setAge(26); Person p2=new Person();p2.setName("A2");p2.setAge(23); List personList=new ArrayList<Person>(); personList.add(p1); personList.add(p2); Map personMap=new HashMap<String, Person>(); personMap.put("p1", p1); personMap.put("p2", p2); //[{"age":26,"name":"A1"},{"age":23,"name":"A2"}] JSONArray.fromObject(personList).toString(); JSONSerializer.toJSON(personList) //[{"p2":{"name":"A2","age":23},"p1":{"name":"A1","age":26}}] JSONArray.fromObject(personMap).toString(); JSONSerializer.toJSON(personMap)3.将json字符串转换成动态Java对象
String jsonStr="[{\"name\":\"A2\",\"age\":23},{\"name\":\"A1\",\"age\":26}]"; JSONArray ja=JSONArray.fromObject(jsonStr); for(int i=0;i<ja.size();i++){ JSONObject jo= ja.getJSONObject(i); //转换成JSONObject对象 System.out.println(jo.get("name")); Person p=(Person)JSONObject.toBean(jo,Person.class); //转换成JavaBean System.out.println(p.getName()); }4.解决json中字段和java类的关键字冲突的问题,如果你的json中含有关键字和java的关键字冲突怎么解决。加上 @SerializedName("") ,加入json中有一个字段为abstract,你的java类中肯定不能有这个一个属性,解决方法。如下:
@SerializedName(" abstract") public String abstracttext;