Java中实现JSON格式的转换(通过实例讲解)

news2024/11/24 6:47:11
创建项目

在IDEA中新建一个Java项目,在建好后的项目结构中添加一些必要的目录和文件,我最终的项目结构如图所示:

在这里插入图片描述

其中,

  • PersonDog是用于演示的两个类;
  • JSONTest是实现将PersonDog的实例对象转换成字符串,以及将字符串转换成对象的类;
  • JsonExampleJSOnTest的实现类。
引入jar包

可以使用已有的方法实现JSON转换,需要先引入jar包。

步骤如下:

点击进入“项目结构” ==> 点击“库” ==> 点击 “+” 添加并选择“来自Maven” ==> 搜索并下载如图三个jar包

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在搜索框中搜索:

在这里插入图片描述

最后一路应用和确认即可。

源码

Person.java

public class Person {
    private String name;
    private int age;
    private Dog dog;

    public Person() {
        // Empty constructor
    }
    public Person(String name, int age, Dog dog) {
        this.name = name;
        this.age = age;
        this.dog = dog;
    }

    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;
    }
    public Dog getDog() {
        return dog;
    }
    public void setDog(Dog dog) {
        this.dog = dog;
    }

}

Dog.java

package com.example;

public class Dog {
    private String name;

    public Dog() {
        this.name = "Unknown";
    }
    public Dog(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

JSONTest.java

package test;

import com.example.Dog;
import com.example.Person;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JSONTest {

    public void testWriteJson() {
        // 创建对象
        Dog dog = new Dog("旺财");
        Person person = new Person("张三", 18, dog);
        // 将对象转换为JSON字符串
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            String jsonStr = objectMapper.writeValueAsString(person);
            System.out.println(jsonStr);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void testReadJson() {
        // JSON字符串
        String jsonStr = "{\"name\":\"张三\",\"age\":18,\"dog\":{\"name\":\"旺财\"}}";
        // 将JSON字符串转换为对象
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            Person person = objectMapper.readValue(jsonStr, Person.class);
            System.out.println(person);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

JsonExample.java

package test;

public class JsonExample {
    public static void main(String[] args) {

        JSONTest jsonTest = new JSONTest();
        jsonTest.testWriteJson();

        jsonTest.testReadJson();
    }
}
运行测试

可以在JSONTest中的System.out.println(person);那一行打上一个短点,方便运行调试时查看,对象变量的具体值。

点击调试,结果如下:

在这里插入图片描述


谢谢观看!如果文章对你有所帮助的话,可以帮我点一下赞,点点关注哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2101185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3 数据通信

一、基本概念 数据在 vue 中是单向流动的,有利于管理数据状态和变化。 而在日常组件开发中,难以避免组件之间的数据通信。组件通信可以分为不同的场景,例如父子组件通信、兄弟组件通信、跨层级组件通信等。 Vue3 提供了多种方式进行组件间的…

无法访问,你可能没有权限使用网络资源,此用户无法登录

解决方法: 打开控制面板,WinR运行框输入 control 控制面板主页更改为小图标,并选择凭据管理器 选择Window凭证,添加凭证(如果之前输错过的,这里会有信息,请删掉重新添加)

Mysql基础练习题 620.有趣的电影 (力扣)

620.编写解决方案,找出所有影片描述为 非 boring (不无聊) 的并且 id 为奇数 的影片,返回结果按 rating 降序排列 题目链接: https://leetcode.cn/problems/not-boring-movies/ 建表插入数据: Create table If Not Exists cinema (id int…

HIS系统|HIS系统成品|HIS系统应用

随着医疗信息化的飞速发展,HIS(医院信息系统)已经成为现代医院不可少的组成部分。HIS系统在医疗行业中扮演着至关重要的角色,广泛应用于医院的各个环节,不仅提高了医疗服务的效率,也增强了患者体验。本文将…

Vision Transformer (ViT) + 代码【详解】

文章目录 1、Vision Transformer (ViT) 介绍2、patch embedding3、代码3.1 class embedding Positional Embedding3.2 Transformer Encoder3.3 classifier3.4 ViT总代码 1、Vision Transformer (ViT) 介绍 VIT论文的摘要如下,谷歌翻译如下: 虽然 Transf…

JVM面试(四)类加载器和双亲委派机制

什么是类加载器? 简单来说的话,是用于实现“类加载动作”的加载器 “通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器…

Web测试(知识总结)

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 随着Internet和Internet/Extranet的快速增长,Web已经对商业、工业、银行、财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的…

代码随想录打卡第10天

232 用队列实现栈 两个栈一个负责入一个负责出。 class MyQueue {Stack<Integer> stackIn;Stack<Integer> stackOut;public MyQueue() {stackInnew Stack<>();stackOut new Stack<>();}public void push(int x) {stackIn.push(x);}public int pop() {…

axure9勾选多个删除,弹框显示多个中继器编号

文本框 情形是删除逗号 文本框内插入数据

分类预测|基于雪消融优化极端梯度提升的数据分类预测Matlab程序SAO-XGBoost 多特征输入多类别输出

分类预测|基于雪消融优化极端梯度提升的数据分类预测Matlab程序SAO-XGBoost 多特征输入多类别输出 文章目录 一、基本原理SAO&#xff08;雪消融智能优化算法&#xff09;回归预测中的应用XGBoost 回归预测基本原理SAO-XGBoost 流程 二、实验结果三、核心代码四、代码获取五、总…

Json数据解析报错 -TAB

表现&#xff1a; n8n 解析服务器的数据 报错 json 解析错误 原理&#xff1a; tab键 在代码中为 string tab \t解决办法&#xff1a;tab键替换4个空格 string tab "\t" tab.replaceAll("\t", " ")问题&#xff1a; tab 键 和 空格 在普…

特殊教育学校自闭症:提供个性化教学,满足孩子需求

在特殊教育领域&#xff0c;针对自闭症儿童的个性化教学已成为一种趋势&#xff0c;旨在通过量身定制的教育方案&#xff0c;最大限度地满足每位孩子的独特需求。星启帆自闭症儿童康复机构&#xff0c;作为广州地区的一颗璀璨明珠&#xff0c;正是这一理念的忠实践行者。 星启帆…

什么叫3d建模渲染?与云渲染农场关系

3D建模渲染行业是一个涉及多个行业和领域的技术过程&#xff0c;它不仅仅是一个特点行业的产物&#xff0c;而是广泛应用于产品设计、工业设计、环境设计、动画、游戏建模和影视CG等多个领域。那么3D建模渲染又与云渲染农场有什么关系呢&#xff0c;一起来简单看看吧。 什么叫3…

音频原始数据PCM

PCM全称是脉冲编码调制数据。PCM数据是未经过压的音频数据&#xff0c;它由模拟信号信号经过采样、编码等步骤抓换成的数字信号。 一、音频基础知识讲解 1.1频率 声音是由震动产生的&#xff0c;所以声音是有频率的&#xff0c;人类可以听到的声音频率大概在20HZ~20KHZ 1.2振…

宠物空气净化器真的有用吗?去浮毛好用的宠物空气净化器推荐

不知不觉我已经养宠五年了&#xff0c;一人两猫作伴的日子充满着幸福&#xff0c;可猫毛的存在偶尔也会让小家出现裂缝。每当换毛季&#xff0c;我的鼻子就率先作出反应&#xff0c;瘙痒加上止不住喷嚏都在反映着不佳的空气质量。这都是因为猫咪疯狂掉毛&#xff0c;浮毛上附着…

最新车型库大全|阿里云实现调用API接口

整体请求流程&#xff1a; 介绍&#xff1a; 本次解析通过阿里云云市场的云服务来实现查询车型库大全查询&#xff0c;首先需要选择一家可以提供查询的商品。 [探数API]车型库查询_API专区_云市场-阿里云 步骤1: 选择商品 如图点击免费试用&#xff0c;即可免费申请该接口数…

Power BI Desktop突然自动关闭如何恢复未保存的开发内容?

故事背景 今天有位同事在用Power BI Desktop开发报告的时候&#xff0c;Power BI Desktop软件突然自动关闭时&#xff0c;更让同事郁闷的是开发了两个小时的报告内容还未点击保存&#xff01; 同事非常担心会丢失未保存的报告开发内容&#xff0c;找我寻求帮助如何恢复未保存…

无人机培训校企合作技术详解

随着无人机技术的飞速发展&#xff0c;其在航拍、农业、环境监测、应急救援等多个领域展现出巨大的应用潜力&#xff0c;市场对无人机专业人才的需求也日益增长。因此&#xff0c;加强无人机培训领域的校企合作&#xff0c;成为培养高素质无人机技术人才的重要途径。本文将从合…

企业为什么要使用加密软件?哇!原来有这么多好处呢

1、防止内部泄密&#xff1a;加密软件可以限制文件的访问权限&#xff0c;防止机密文件在公司内部随意流转。 2、访问控制&#xff1a;加密软件可以设定严格的访问控制策略&#xff0c;确保只有授权用户才能访问敏感数据。 3、提升数据恢复能力&#xff1a;通过加密备份数据&…

redis学习(011 实战:黑马点评:优惠券秒杀:redis实现全局唯一ID)

黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 总时长 42:48:00 共175P 此文章包含第48p-第p49的内容 文章目录 全局唯一ID编码 全局唯一ID //String did dao.haveKeyId(“deputybedthing”); 这里的主键并没有…