Gson是google一个谷歌提供用来解析Json。
Gson提供了两种方法: ⑴toJson 将对象转化为 Json 对象
⑵fromJson 实现从 Json 对象转化为实体类对象
额外提供Json对象和XML对象的转化案例,这个不属于google提供的。
/*实体类*/
package com.mark; public class TestPerson { public String name; public int age; public String sex; public void tostring() { System.out.println("name:"+this.name+" age:"+this.age+" sex:"+this.sex); } }
/*案例输出结果*/package com.mark; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import net.sf.json.JSONObject; import net.sf.json.JSONSerializer; import net.sf.json.xml.XMLSerializer; import java.util.ArrayList; public class TestClass { public static void main(String arg[]){ /* 将实体类转化为json类型 */ Gson gson = new Gson(); ArrayList<TestPerson> person = new ArrayList<TestPerson>(); for(int i = 0; i < 3;i++){ TestPerson tempPerson = new TestPerson(); tempPerson.age=i+5; tempPerson.name="实体类"+String.valueOf(i); person.add(tempPerson); } String json = new Gson().toJson(person); System.out.println(json); System.out.println("******************************************************************************"); /* 将json转化为实体类 */ String str ="{\"name\":\"json转化实体类\",\"age\":5}"; TestPerson tempPerson = gson.fromJson(str,TestPerson.class); tempPerson.tostring(); System.out.println("******************************************************************************"); /* 将json字符串,转化为列表类型 */ System.out.print("json转化列表类型 "); String strList="[{\"name\":\"mark\",\"age\":5},{\"name\":\"jack\",\"age\":6},{\"name\":\"teddy\",\"age\":7}]"; ArrayList<TestPerson> testPersonList = gson.fromJson(strList,new TypeToken<ArrayList<TestPerson>>(){}.getType()); for(TestPerson ps : testPersonList){ ps.tostring(); } System.out.println("******************************************************************************"); /* JSON序列化XML字符串 */ JSONObject obj = (JSONObject) JSONSerializer.toJSON(str); XMLSerializer xml = new XMLSerializer(); System.out.println("Json转化Xml "+xml.write(obj)); } }
[{"name":"实体类0","age":5},{"name":"实体类1","age":6}] ****************************************************************************** name:json转化实体类 age:5 sex:null ****************************************************************************** json转化列表类型name:mark age:5 sex:null name:jack age:6 sex:null name:teddy age:7 sex:null ****************************************************************************** Json转化Xml <?xml version="1.0" encoding="UTF-8"?> <o><age type="number">5</age><name type="string">json转化实体类</name></o>