首页 > 编程语言 >java to json / json to java使用FastJson对JSON字符串、JSON对象及JavaBean之间的相互转换​​​​​​​

java to json / json to java使用FastJson对JSON字符串、JSON对象及JavaBean之间的相互转换​​​​​​​

时间:2023-11-21 10:32:19浏览次数:42  
标签:java JSONArray JSONObject json JSON put new jsonObjectClass


目录

1、准备 

2、java to  json 

3、json to java


1、准备 

1、json 格式在线查看

2.下载  阿里巴巴 json  解析库

alibaba/fastjson

下载最新的 jar 包 并且放在 项目 libs 目录下,add as lib````

java to json / json to java使用FastJson对JSON字符串、JSON对象及JavaBean之间的相互转换​​​​​​​_java

2、java to  json 

比如我们想使用 java  编写以下 json 格式 数据

{
    "creatTime": 1992,
    "school": "一中",
    "class": [{
        "classOne": {
            "studentDetails": [{
                "high": 172.3,
                "name": "wang",
                "age": 18
            }, {
                "high": 165.8,
                "name": "li",
                "age": 20
            }],
            "teachers": {
                "chinese": "mrlu",
                "english": "msyang"
            },
            "studentsNum": 20,
            "master": "mrlu"
        }
    }, {
        "classTwo": {
            "studentDetails": [{
                "high": 160.8,
                "name": "liu",
                "age": 20
            }, {
                "high": 158.4,
                "name": "zhao",
                "age": 17
            }],
            "teachers": {
                "chinese": "mrliu",
                "english": "mszhang"
            },
            "studentsNum": 30,
            "master": "mszhang"
        }
    }]
}

代码实现:

package com.example.fortest;

import android.os.Bundle;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class MainActivity extends AppCompatActivity {

    private String TAG = "jsonTest";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        schoolJsonOnject();
    }


    //创建学生 json 对象
    private JSONObject studentJsonObject(String name,int age, float high) {
        JSONObject jsonObjectStudent  = new JSONObject();
        jsonObjectStudent.put("name",name);
        jsonObjectStudent.put("age",age);
        jsonObjectStudent.put("high",high);
        return jsonObjectStudent;
    }

    //创建老师 json 对象
    private JSONObject teacherJsonObject(String chinese ,String english) {
        JSONObject jsonObjectTeacher  = new JSONObject();
        jsonObjectTeacher.put("chinese",chinese);
        jsonObjectTeacher.put("english",english);
        return jsonObjectTeacher;
    }

    //创建班级 json 对象
    private JSONObject classJsonObject(String master , int studentsNum,
                                       JSONObject teacherJsonObject, JSONArray studentJsonArrayObject) {
        JSONObject jsonObjectClass  = new JSONObject();
        jsonObjectClass.put("master",master);
        jsonObjectClass.put("studentsNum",studentsNum);
        jsonObjectClass.put("teachers",teacherJsonObject);
        jsonObjectClass.put("studentDetails",studentJsonArrayObject);

        return jsonObjectClass;
    }

    //创建 第一个班 json 实体
    private JSONObject creatJsonObkectClassOne() {

        //创建 第一个班的学生
        JSONObject studentWang = studentJsonObject("wang",18,172.3f);
        JSONObject studentLi = studentJsonObject("li",20,165.8f);
        JSONArray jsonArrayStudent = new JSONArray();
        jsonArrayStudent.add(studentWang);
        jsonArrayStudent.add(studentLi);

        //创建 第一个 班的老师
        JSONObject jsonObjectTeacher = teacherJsonObject("mrlu","msyang");

        //创建 第一个班级
        JSONObject jsonObjectClass =
                classJsonObject("mrlu",20,jsonObjectTeacher,jsonArrayStudent);

        JSONObject jsonObjectClassOne = new JSONObject();

        jsonObjectClassOne.put("classOne",jsonObjectClass);

        return jsonObjectClassOne;
    }

    //创建 第二个班 json 实体
    private JSONObject creatJsonObkectClassTwo() {

        //创建 第个班的学生
        JSONObject studentLiu = studentJsonObject("liu",20,160.8f);
        JSONObject studentZhao = studentJsonObject("zhao",17,158.4f);
        JSONArray jsonArrayStudent = new JSONArray();
        jsonArrayStudent.add(studentLiu);
        jsonArrayStudent.add(studentZhao);

        //创建 第个 班的老师
        JSONObject jsonObjectTeacher = teacherJsonObject("mrliu","mszhang");

        //创建 第个班级
        JSONObject jsonObjectClass =
                classJsonObject("mrliu",30,jsonObjectTeacher,jsonArrayStudent);

        JSONObject jsonObjectClassTwo = new JSONObject();

        jsonObjectClassTwo.put("classTwos",jsonObjectClass);

        return jsonObjectClassTwo;
    }


    private JSONObject schoolJsonOnject() {
        JSONObject jsonObjectSchool  = new JSONObject();
        jsonObjectSchool.put("school","一中");
        jsonObjectSchool.put("creatTime",1992);

        JSONArray jsonArrayClasses = new JSONArray();

        JSONObject classOne = creatJsonObkectClassOne();
        jsonArrayClasses.add(classOne);

        JSONObject classTwo = creatJsonObkectClassTwo();
        jsonArrayClasses.add(classTwo);

        jsonObjectSchool.put("class",jsonArrayClasses);


        Log.i(TAG,jsonObjectSchool.toJSONString());
        return jsonObjectSchool;
    }
}

然后我们 把打印的 log 放在json在线格式中,发现就是我们准备转化的数据。

3、json to java

那我们怎么通过 json 格式的数据 获取到我们的  java 数据呢。

我们依获取 classone wang 同学的 age 为例:

package com.example.fortest;

import android.os.Bundle;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class MainActivity extends AppCompatActivity {

    private String TAG = "jsonTest";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        schoolJsonOnject();
    }


    //创建学生 json 对象
    private JSONObject studentJsonObject(String name,int age, float high) {
        JSONObject jsonObjectStudent  = new JSONObject();
        jsonObjectStudent.put("name",name);
        jsonObjectStudent.put("age",age);
        jsonObjectStudent.put("high",high);
        return jsonObjectStudent;
    }

    //创建老师 json 对象
    private JSONObject teacherJsonObject(String chinese ,String english) {
        JSONObject jsonObjectTeacher  = new JSONObject();
        jsonObjectTeacher.put("chinese",chinese);
        jsonObjectTeacher.put("english",english);
        return jsonObjectTeacher;
    }

    //创建班级 json 对象
    private JSONObject classJsonObject(String master , int studentsNum,
                                       JSONObject teacherJsonObject, JSONArray studentJsonArrayObject) {
        JSONObject jsonObjectClass  = new JSONObject();
        jsonObjectClass.put("master",master);
        jsonObjectClass.put("studentsNum",studentsNum);
        jsonObjectClass.put("teachers",teacherJsonObject);
        jsonObjectClass.put("studentDetails",studentJsonArrayObject);

        return jsonObjectClass;
    }

    //创建 第一个班 json 实体
    private JSONObject creatJsonObkectClassOne() {

        //创建 第一个班的学生
        JSONObject studentWang = studentJsonObject("wang",18,172.3f);
        JSONObject studentLi = studentJsonObject("li",20,165.8f);
        JSONArray jsonArrayStudent = new JSONArray();
        jsonArrayStudent.add(studentWang);
        jsonArrayStudent.add(studentLi);

        //创建 第一个 班的老师
        JSONObject jsonObjectTeacher = teacherJsonObject("mrlu","msyang");

        //创建 第一个班级
        JSONObject jsonObjectClass =
                classJsonObject("mrlu",20,jsonObjectTeacher,jsonArrayStudent);

        JSONObject jsonObjectClassOne = new JSONObject();

        jsonObjectClassOne.put("classOne",jsonObjectClass);

        return jsonObjectClassOne;
    }

    //创建 第二个班 json 实体
    private JSONObject creatJsonObkectClassTwo() {

        //创建 第个班的学生
        JSONObject studentLiu = studentJsonObject("liu",20,160.8f);
        JSONObject studentZhao = studentJsonObject("zhao",17,158.4f);
        JSONArray jsonArrayStudent = new JSONArray();
        jsonArrayStudent.add(studentLiu);
        jsonArrayStudent.add(studentZhao);

        //创建 第个 班的老师
        JSONObject jsonObjectTeacher = teacherJsonObject("mrliu","mszhang");

        //创建 第个班级
        JSONObject jsonObjectClass =
                classJsonObject("mrliu",30,jsonObjectTeacher,jsonArrayStudent);

        JSONObject jsonObjectClassTwo = new JSONObject();

        jsonObjectClassTwo.put("classTwos",jsonObjectClass);

        return jsonObjectClassTwo;
    }


    private JSONObject schoolJsonOnject() {
        JSONObject jsonObjectSchool  = new JSONObject();
        jsonObjectSchool.put("school","一中");
        jsonObjectSchool.put("creatTime",1992);

        JSONArray jsonArrayClasses = new JSONArray();

        JSONObject classOne = creatJsonObkectClassOne();
        jsonArrayClasses.add(classOne);

        JSONObject classTwo = creatJsonObkectClassTwo();
        jsonArrayClasses.add(classTwo);

        jsonObjectSchool.put("class",jsonArrayClasses);


        Log.i(TAG,jsonObjectSchool.toJSONString());

        jsonTojava(jsonObjectSchool.toJSONString());

        return jsonObjectSchool;
    }


    private void jsonTojava(String jsonString ) {
        JSONObject jsonObjectSchool = JSON.parseObject(jsonString);
        String  school = jsonObjectSchool.getString("school");

        JSONArray jsonArrayClass = jsonObjectSchool.getJSONArray("class");
        for (Object classOnject: jsonArrayClass) {
            JSONObject jsonObject = (JSONObject) classOnject;
            if (jsonObject.containsKey("classOne")) {
                JSONObject jsonObjectOne = (JSONObject) jsonObject.get("classOne");
                JSONArray studentJsonArry = jsonObjectOne.getJSONArray("studentDetails");
                for (Object student : studentJsonArry) {
                    JSONObject studentObject = (JSONObject) student;
                    if (studentObject.getString("name").equals("wang")) {
                        int age = studentObject.getInteger("age");

                        Log.i(TAG,"school:  " + school +  "  wang age " + age);
                    }
                }
            }
        }
    }
}

log 显示 如下:

java to json / json to java使用FastJson对JSON字符串、JSON对象及JavaBean之间的相互转换​​​​​​​_android_02

文件参考:

使用FastJson对JSON字符串、JSON对象及JavaBean之间的相互转换

标签:java,JSONArray,JSONObject,json,JSON,put,new,jsonObjectClass
From: https://blog.51cto.com/u_15866638/8497528

相关文章

  • 学习Java是个好选择吗?
    学习Java是个好选择吗?Java是一门非常流行和广泛应用的编程语言,学习Java有许多好处。以下是一些关于学习Java的优点: 1.广泛应用:Java被广泛应用于各种领域,包括软件开发、移动应用开发、Web开发、大数据处理、物联网等。学习Java可以为你提供丰富的就业机会和职业发展路径。 2.跨......
  • Java开发者的Python快速进修指南:异常捕获
    在之前的学习中,我们已经讲解了函数和控制流等基本概念。然而,在接触实际业务时,你会发现异常捕获也是必不可少的一部分,因为在Java编程中,异常处理是不可或缺的。Python的异常捕获与Java的异常捕获原理是相同的,只是在写法上有一些区别。它们的目的都是为了处理程序在执行过程中出现错......
  • 入门级Java日期的加减
    1.Date的加减1.1Date加减新手适用  不推荐使用。2.Calendar的日期加减 演示如下: 若不需要显示这样的,就如下: 运行结果,如下:  3.LocalDateTime的日期加减   运行结果如下: ......
  • JAVAOOP日历之Calendar日历类型的常见方法
    1、获取当前时间 Calendarc=Calendar.getInstance();  2、为日历对象定义一个指定日期的数据 c.set(2023,1,1); 3、为日历对象加和减年、月、日 c.add(Calendar.YEAR,2);//加2年c.add(Calendar.MONDAY,2);//加2月c.add(Calendar.DATE,2);//加2日c.......
  • javaOOP(LocalDateTime日期方法)之日期的加减
    以下操作都可以用于LocalDateTime,LocalDate,LocalTime等方法本次只用了LocalDateTime测试1、加法 2、减法 ......
  • 信创就用国产的 Solon Java Framework,v2.6.0 发布
    先吹牛!在v2.6这个新的里程碑节点,Solon又完成了几件惊天大事(每一件,都是经历了漫长时间打磨与积累):(1)SolonNative,有了第一个开源案例:dromara/neutrino-proxy(它是2021年起头的二级项目)Solon估计是国内唯搞AOT和Java原生编译的。或许,这块的友商只能是Micronaut、Quarkus......
  • 中国矿业大学CUMT 2021级java期末考试
    一.简答题(5题*8=40分)1.简要说出java程序运行过程2.final和static分别可以修饰什么,各自代表了什么意思(成员变量、成员方法、接口什么的)3.继承中子类对象初始化的全过程4.Java的成员方法和变量中静态绑定和动态绑定的区别5.同步和异步的区别:同步操作意味着在一个操作完成之前,下......
  • Java之接口的详解
    2.1概述我们已经学完了抽象类,抽象类中可以用抽象方法,也可以有普通方法,构造方法,成员变量等。那么什么是接口呢?接口是更加彻底的抽象,JDK7之前,包括JDK7,接口中全部是抽象方法。接口同样是不能创建对象的。2.2定义格式//接口的定义格式:interface接口名称{//抽象方法}//接......
  • Java学习—二分法查找(一)
    1、二分查找(binarysearch)二分查找(binarysearch),也称折半搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且......
  • java 接口
    packagenet.elaina.interface01;publicabstractclassAnimal{privateStringname;privateintage;publicAnimal(){}publicAnimal(Stringname,intage){this.name=name;this.age=age;}/***......