zoukankan      html  css  js  c++  java
  • FastJson对于JSON格式字之间转换

    FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

    一.pom.xml配置jar包

    <!-- Json依赖架包下载 -->
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.49</version>
    </dependency>
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.10</version>
    </dependency>

    二.定义三个json格式的字符串,作为我们的数据源
    //json字符串-简单对象型
    private static final String JSON1= "{"studentName":"lily","studentAge":12}";
    //json字符串-数组类型
    private static final String JSON2= "[{"studentName":"lily","studentAge":12},{"studentName":"lucy","studentAge":15}]";
    //复杂格式json字符串
    private static final String JSON3= "{"teacherName":"crystall","teacherAge":27,"course":{"courseName":"english","code":1270},"students":[{"studentName":"lily","studentAge":12},{"studentName":"lucy","studentAge":15}]}";
    1.JSON格式字符串与JSON对象之间的转换
    1.1-json字符串-简单对象型与JSONObject之间的转换
    JSONObject jsonObject=JSON.parseObject(JSON1);
    //JSONObject jsonObject1=JSONObject.parseObject(JSON1); //因为JSONObject继承了JSON,所以这样也是可以的

    1.2-json字符串-数组类型与JSONArray之间的转换
    JSONArray jsonArray=JSON.parseArray(JSON2);
    //JSONArray jsonArray1=JSONArray.parseArray(JSON2);//因为JSONArray继承了JSON,所以这样也是可以的,之后再遍历
    //遍历方式1
    int size = jsonArray.size();
    for (int i = 0; i < size; i++){
    JSONObject jsonObject = jsonArray.getJSONObject(i); System.out.println(jsonObject.getString("studentName")+":"+jsonObject.getInteger("studentAge"));
    }
    //遍历方式2
    for (Object obj : jsonArray) {
    JSONObject jsonObject = (JSONObject) obj; System.out.println(jsonObject.getString("studentName")+":"+jsonObject.getInteger("studentAge"));
    }
    1.3-复杂json格式字符串与JSONObject之间的转换
    JSONObject jsonObject=JSON.parseObject(JSON3);
    //JSONObject jsonObject1=JSONObject.parseObject(JSON3);//因为JSONObject继承了JSON,所以这样也是可以的
    2.JSON格式字符串与java对象之间的转换。
    2.1-json字符串-简单对象型与java对象之间的转换
    Student student = JSON.parseObject(JSON1, new TypeReference<Student>() {});
    //Student student1 = JSONObject.parseObject(JS ON1, new TypeReference<Student>() {});//因为JSONObject继承了JSON,所以这样也是可以的

    2.2-json字符串-数组类型与javaBean之间的转换
    ArrayList<Student> students=JSON.parseObject(JSON2, new TypeReference<ArrayList<Student>>() {});
    //ArrayList<Student> students1=JSONArray.parseObject(JSON2, new TypeReference<ArrayList<Student>>() {});//因为JSONArray继承了JSON,所以这样也是可以的,之后再解析
    for (Student student : students) {
    System.out.println(student.getStudentName()+":"+student.getStudentAge());
    }

    2.3-复杂json格式字符串与与javaBean之间的转换
    Teacher teacher = JSON.parseObject(JSON3, new TypeReference<Teacher>() {});
    //Teacher teacher1 = JSON.parseObject(JSON3, new TypeReference<Teacher>() {});//因为JSONObject继承了JSON,所以这样也是可以的
    List<Student> students = teacher.getStudents();在for解析就可以获取

    3.java对象转换JSON格式字符串。
    //java对象转换为json对象
    JSONObject jsonObjects=JSONObject.toJSON(User);
    //json对象转换为(json)字符串
    String json=JSON.toJSONString(jsonObjects);

    //上边两行可以合并为一行。java对象转换为json对象在转换为(json)字符串
    String json=JSON.toJSONString(JSONObject.toJSON(User));

    4.JSON格式字符串转换java对象。
    //json对象转换为java对象
    user= JSONObject.parseObject(json1, new TypeReference<User>(){} );

    此外的
    1,对于JSON对象与JSON格式字符串的转换可以直接用 toJSONString()这个方法。
    2,java对象与JSON格式字符串之间的转换要用到:JSON.toJSONString(obj);
       3,java对象与json对象间的转换使用:JSON.toJSON(obj),然后使用强制类型转换,JSONObject或者JSONArray。
  • 相关阅读:
    linux-gcc 编译时头文件和库文件搜索路径
    程序自启动位置(8种方法,注册表有6处)
    谷歌、flick网站图片 一次性下载 javaWeb项目 多线程下载,
    部署vc2008开发的程序(vcredist_x86是其中一个办法)
    vs2012-vs2013编译出来的程序不能在xp上运行解决方法
    openssl编译
    libcurl编译
    qt 国际化(翻译时会触发changeEvent)
    uva 12100 Printer Queue 优先级队列模拟题 数组模拟队列
    qtcreator增加doxygen注释
  • 原文地址:https://www.cnblogs.com/thcy1314/p/10362425.html
Copyright © 2011-2022 走看看