json数据的相互转换

来源:互联网 发布:php上传到服务器 编辑:程序博客网 时间:2024/05/08 19:42

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和不同的数据类型做转换,一般也比较常用,可以单独写成一个工作类,方便以后的调用。

.附:本人新入行小菜鸟一个,很多地方写的不够完善,还希望大神们多多指教



0 0
原创粉丝点击