1.首先搭建环境,导入需要的jar包
gson-2.1.jar()
commons-beanutils-1.8.0.jar
commons-collections-3.2.1.jar
commons-lang-2.5.jar
commons-logging-1.2.jar
ezmorph-1.0.6.jar
json-lib-2.4-jdk15.jar
2.编写实体类
public class Person {
private String name;
private int age;
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 "name=" + name + ", age=" + age + "";
}
}
3.编写测试类
关键代码:
//Json转换
Gson gson = new Gson();
List<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 10; i++) {
Person p = new Person();
p.setName("name" + i);
p.setAge(i * 5);
persons.add(p);
}//创建一组具有Json格式的集合对象
System.out.println(persons);//转换前
String str1 = gson.toJson(persons);//Gson对象,它提供了toJson()方法将对象转换成Json字符串
System.out.println(str1);//转换后
String str2=str1.replace("[", "");
System.out.println(str2);
String str3=str2.replace("]", "");//去除json对象中的中括号
String str4=str3.replace("},", "}!");//将单个json数据以!分隔开,方便截取
System.out.println(str4);
String[] str5=str4.split("!");//截取为单个json数据,变为一个存储多个json数据的字符串数组
System.out.println(str5[0]);
for (int i = 0; i < str5.length; i++) {
// JSONObject jsonObject = JSONObject.fromObject(str5[i]);
// Person persons1 =(Person) JSONObject.toBean(jsonObject, Person.class);//公司中是这样转的,这个方法需要多导入除了第一个jar包的六个jar包
Person persons1 =(Person) gson.fromJson(str5[i], Person.class);//直接将json字符串转为对象
System.out.println(persons1);
}
4.这两种方法我不清楚本质的区别在哪,还是说公司框架的需要,有懂得可以解释下,谢谢了
5.代码执行情况
6.总结:json数据比较复杂时,都需要经过简单的处理,如果是直观的json字符串,直接调用方法即可,json和不同的数据类型做转换,一般也比较常用,可以单独写成一个工作类,方便以后的调用。
.附:本人新入行小菜鸟一个,很多地方写的不够完善,还希望大神们多多指教