废话不多说,直接上源码。
首先第一步创建java bean Person对象,里面包括id,name,age等属性,第二步创建GsonTest将json字符串转换成java对象,通过JavaElements转换成JsonObject、JsonArray,遍历JsonArray通过迭代器。
Person
package com.prase.bean;
public class Person {
//编号
private Integer id;
//姓名
private String name;
//年龄
private Integer age;
public Person() {
super();
// TODO Auto-generated constructor stub
}
public Person(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
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;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
GsonTest
package com.prase.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.prase.bean.Person;
public class GsonTest {
public static void main(String[] args) {
Map map=new HashMap<>();
//给map 设置key value
map.put("id", "1");
map.put("name", "admin");
map.put("age", "20");
//给list添加几个元素
List list=new ArrayList();
list.add("1");
list.add( "123");
list.add("30");
//json字符串格式
String str="[{'id':1,'name':'tom','age':30},{'id':2,'name':'lisi','age':40}]";
Gson gson=new Gson();
//将java字符串转换成java对象
String jsonString=gson.toJson(map);
System.out.println(jsonString);
//把集合转换成json字符串
jsonString=gson.toJson(list);
//创建一个jsonParser
JsonParser parser=new JsonParser();
//通过JsonParser 可以把json字符串转成成javaelement对象
JsonElement element=parser.parse(str);
//将jsonelement转换成JsonObject
JsonObject jsonObject=null;
if(element.isJsonObject()){
jsonObject=element.getAsJsonObject();
}
//将jsonelemnt转化成JsonArray
JsonArray jsonArray=null;
if(element.isJsonArray()){
jsonArray=element.getAsJsonArray();
}
//遍历jsonArray对象
Person person=null;
Iterator it=jsonArray.iterator();
while(it.hasNext()){
JsonElement e=(JsonElement) it.next();
//将JsonElment转换成java bean对象
person=gson.fromJson(e, Person.class);
System.out.println("id:"+person.getId()+"----"+"name:"+person.getName()+"----"+"age:"+person.getAge());
}
}
}
控制台的输出信息
{"id":"1","age":"20","name":"admin"}
id:1----name:tom----age:30
id:2----name:lisi----age:40