1,首先我們要先明白json與gson有什么區別
其實他們是完全不同的概念:
json是一種數據格式,便於數據傳輸,存儲,交換。
gson則是一種組件庫,就是通過Gson我們可以把java中的對象(gson.toJson()),轉換成Json字符串,當然反過來也是可以的(gson.fromJson);
2,代碼
首先我們需要JSon和Gson這兩個jar包
package com.json.dome;
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
public class JsonDome {
public static void main(String[] args) {
// TODO 自動生成的方法存根
//生成json
List<Student> arrayList=new ArrayList<Student>();
Student stu1=new Student("張三", "男");
Student stu2=new Student("李四", "男");
Student stu3=new Student("王二", "女");
arrayList.add(stu1);
arrayList.add(stu2);
arrayList.add(stu3);
Gson gson=new Gson();
//gson.toJson(student);//對單個實例操作
//將對象的集合轉換成json字符串
String json=gson.toJson(arrayList);
System.out.println(json);
//解析json
//對單個實例操作
gson.fromJson(json,Sutdent.Class);//json為要解析的字符串,Sutdent.Class為對應的對象
//這里生成的是一個實例集合
List<Student> arraylist=gson.fromJson(json, new TypeToken<List<Student>>(){}.getType());
for(Student stu:arraylist)
{
System.out.println(stu.name+" "+stu.sex);
}
}
}
class Student
{
String name;
String sex;
public Student(String name, String sex) {
super();
this.name = name;
this.sex = sex;
}
}
雖然使用JSONObject對象的方法也能夠解析json字符串,但是顯然我們這樣做,會更簡單
望不吝賜教!