java操作json数据之fastjson

      JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据互换格局。它基于 ECMAScript (欧洲计较机协会拟定的js规范)的一个子集,采用完全自力于编程说话的文本格局来存储和暗示数据。简练和清楚的条理布局使得 JSON 当作为抱负的数据互换说话。 易于人阅读和编写,同时也易于机械解析和生当作,并有用地晋升收集传输效率。

      本家儿要介绍:com.alibaba.fastjson.JSON中的方式的利用。如下图所示

工具/原料

  • 电脑
  • intellij IDEA 或者eclipse 2017

方式/步骤

  1. 1

    第一步调:建立一个springboot项目。

    1、file--》new--》project...或者Model...打开建立窗口

    2、选择建立的项目为spring initializr 进入springboot项目建立步调(也可以选择类型java,建立一个通俗java web项目)

    3、输入项目名字,选择依靠web(若是不需要可以不选),选择存放目次-完当作(Finish)

  2. 2

    第二步调:测试情况筹办。

    2.1在项目标pox.xml文件的dependencies标签中引入fastjson依靠

    <dependency>    

    <groupId>com.alibaba</groupId>    

    <artifactId>fastjson</artifactId>    

    <version>1.2.47</version>

    </dependency>

    2.2 实体类Student ,get和set方式本身生当作(不克不及贫乏)。

    public class Student {

       private int id;    

       private String name;    

       private String sex;

    }

    2.3 实体类Person属性是一个对象的测试。get和set方式本身生当作(不克不及贫乏)

    public class Person     

       private String id    

       private Person pserson;

    }

  3. 3

    第二步调:fastjson单个实体对象的转换。

    1、需要引入:

    import com.alibaba.fastjson.JSON;

    public static void main(String[] args) {

       //建立一个对象并将 给对象赋值

       Student st = new Student();

       st.setId(1);

       st.setName("张三");

       st.setSex("男");

       //利用fastjson转化为json字符串

      String studentJson = JSON.toJSONString(st);

      System.out.println(studentJson);

       //将json字符串转为实体对象

      Student changeStudent = JSON.parseObject(studentJson,Student.class);

      System.out.println(changeStudent.getName())

    }

    2、单个java.util.Map的操作和实体类不异。

  4. 4

    第四步调:list调集的json利用。

    引入依靠:

    import com.alibaba.fastjson.JSON;import java.util.ArrayList;import java.util.List;

    public static void main(String[] args) {    //建立一个对象并将 给对象赋值 然后利用fastjson转化为json类型的数据    List<Student> list= new ArrayList<Student>();    Student st = new Student();    st.setId(1);    st.setName("张三");    st.setSex("男");    Student st2 = new Student();    st2.setId(2);    st2.setName("小丽");    st2.setSex("女");    list.add(st);    list.add(st2);    String studentJson = JSON.toJSONString(list);//将对象转json    System.out.println(studentJson);    List<Student> list2 = JSON.parseArray(studentJson,Student.class);    System.out.println(list2);    System.out.println(list2.get(0).getName());}

  5. 5

    第五步调:多层实体类转json处置。

    第一种:实体类Person

    public static void main(String[] args) {   Person p1 = new Person();   p1.setId("111");   Person p2 = new Person();   p2.setId("222");   Person p3 = new Person();   p3.setId("333");   p1.setPserson(p2);   p2.setPserson(p3);   String studentJson = JSON.toJSONString(p1);//将对象转json   System.out.println(studentJson);   Person p4 = (Person) JSON.parseObject(studentJson,Person.class);   Person p5 = p4.getPserson();   Person p6 = p5.getPserson();   System.out.println(p6.getId());}

    第二种:多层mao的转换在fastjson-1.2.2.jar中和实体类一致。

    import com.alibaba.fastjson.JSON;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;

    public static void main(String[] args) {    Map m1 = new HashMap();    m1.put("name","张三");    Map m2 = new HashMap();    m2.put("name","李四");    Map m3 = new HashMap();    m3.put("name","王二");    m1.put("map",m2);    m2.put("map",m3);    String studentJson = JSON.toJSONString(m1);//将对象转json    System.out.println(studentJson);    Map m4 = JSON.parseObject(studentJson,Map.class);    Map m5 = (Map) m4.get("map");    Map m6 = (Map) m5.get("map");    System.out.println(m6.get("name"));}

注重事项

  • 实体类的属性必然要有对应的set和get方式不然,转换时对应的属性数据会丢掉。
  • 开辟情况jdk1.8 IDEA2018.2.2 maven apache-maven-3.5.4
  • 通俗java项目手动下载:fastjson-1.2.2.jar添加依靠
  • 发表于 2019-04-23 20:01
  • 阅读 ( 154 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论