1.将google-json.jar包导入到项目中,json.jar 下载:http://code.google.com/p/google-gson/
下列代码用于JSON字符串转化为对象
public class JSONUtil<T>{
private Class<T> clazz;
private String jsonstring;
public JSONUtil(Class<T> clazz,String jsonstring){
this.clazz=clazz;
this.jsonstring=jsonstring;
}
public T parseJsontoT(){
Gson gson=new Gson();
T t=gson.fromJson(jsonstring,clazz);
return t;
}
public LinkedList<T> parseJsonToTs(){
Type type=new TypeToken<LinkedList<T>>() {}.getType();
Gson gson=new Gson();
LinkedList<T> list=gson.fromJson(jsonstring, type);
return list;
}
public static void main(String[] args) {
}
}
json字符串:{{"name":"zk","age":20},{"name":"joker","age":30}}
这个json字符串是一个数组包含两个对象
public void parseJson(){
JsonReader reader=new JsonReader(new StringReader(jsonstring));
try {
reader.beginArray();//开始解析数组,就是包含两个对象的那个大括号{{"name":"zk","age":20},{"name":"joker","age":30}}解析这个
while (reader.hasNext()) { //查看其中包含没包含大括号"{}" 有的话继续
reader.beginObject();//根据具体json字符串查看下个大括号是对象还是数组,显然这个字符串的数组中包含的就是个对象所以开始解析对象
while (reader.hasNext()) { //将对象中的信息开始解析
String tagName=reader.nextName(); //得到"标签名",就是键值对的键
System.out.println(tagName);
System.out.println(reader.nextString()); //根据实际类型获得值
}
reader.endObject(); //结束一个对象
}
reader.endArray();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//
}