java对象转json

news/2024/4/26 19:26:27/文章来源:https://www.cnblogs.com/xjw12345/p/16609309.html

java对象转json

json解析器:

  常见的解析器:Jsonlib,Gson,fastjson,jackson

使用步骤:

  1、导入jackson的相关jar包

  2、创建Jackson核心对象 ObjectMapper

  3、调用ObjectMapper的相关方法进行转换

转换方法:

writeValue(参数1,obj);
参数1:
File:将obj对象转换诶JSON字符串,并保存到指定的文件中
Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
writeValueAsString(obj):将对象转为json字符串

Person对象实体类:

public class Person {private String name;private int age;private String gender;@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", gender='" + gender + '\'' +'}';}public Person() {}public Person(String name, int age, String gender) {this.name = name;this.age = age;this.gender = gender;}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 String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}
}

java转json字符串

//java对象转为JSON字符串
    @Testpublic void test1() throws Exception {//1、创建Person对象Person p = new Person();p.setName("张三");p.setAge(20);p.setGender("男");//2、创建Jackson的核心对象, ObjectMapperObjectMapper mapper = new ObjectMapper();//3、转换/*转换:writeValue(参数1,obj);参数1:File:将obj对象转换诶JSON字符串,并保存到指定的文件中Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中writeValueAsString(obj):将对象转为json字符串*/String json = mapper.writeValueAsString(p);System.out.println(json);//writeValue:将数据写到文件中
//        mapper.writeValue(new File("G://r.txt"),p);mapper.writeValue(new FileWriter("G://r.txt"),p);}

 

 

 

 

java对象转json—注解

@JsonIgnore:排除属性

Person类:

public class Person {private String name;private int age;private String gender;@JsonIgnoreprivate Date birthday;

测试:

@Testpublic void test2() throws Exception {//1、创建Person对象Person p = new Person();p.setName("张三");p.setAge(20);p.setGender("男");p.setBirthday(new Date());//转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(p);System.out.println(json);}

 

 

 

@JsonFormat:格式化属性

public class Person {private String name;private int age;private String gender;@JsonFormat(pattern = "yyyy-MM-dd")private Date birthday;

再次运行性测试方法

 

 

 

 

 

 

java对象转json—List&Map

List集合:

@Testpublic void test3() throws Exception {//1、创建Person对象Person p = new Person();p.setName("张三");p.setAge(20);p.setGender("男");p.setBirthday(new Date());Person p1 = new Person();p1.setName("张三");p1.setAge(20);p1.setGender("男");p1.setBirthday(new Date());Person p2 = new Person();p2.setName("张三");p2.setAge(20);p2.setGender("男");p2.setBirthday(new Date());//创建list集合List<Person> list = new ArrayList<>();list.add(p);list.add(p1);list.add(p2);//转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(list);System.out.println(json);}

 

Map集合:

    @Testpublic void test4() throws Exception {//1、创建Map对象HashMap<String, Object> map = new HashMap<>();map.put("name","张三");map.put("age","23");map.put("gender","男");//转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(map);System.out.println(json);}

 

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flex 布局 display:flex 与 inline-flex 区别

1.Flex布局 display:flex.bigbox{ width: 500px; height: 400px; background:#ff0000; display: flex; } .smallbox{ width: 100px; height: 100px; background: #f5f5f5; margin: 10px; }<span>flex</span> <div class="bigb…

Java核心知识体系4:AOP原理和切面应用

1 概述 我们所说的Aop(即面向切面编程),即面向接口,也面向方法,在基于IOC的基础上实现。 Aop最大的特点是对指定的方法进行拦截并增强,这种增强的方式不需要业务代码进行调整,无需侵入到业务代码中,使业务与非业务处理逻辑分离。 以Spring举例,通过事务的注解配置,Sp…

npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead.

报错信息: npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead. 报错截图: 如何弃用 npm WARN 配置全局 –global, –local。使用“–location=global”代替“错误发生? 当我尝试使用-g的全局命令时,只是尝试安装使用npm ins…

【面试题】循环打印红绿灯

循环打印红绿灯 点击打开视频讲解更加详细 红灯3秒后变成绿灯 绿灯5秒后变成黄灯 黄灯2秒后变成红灯案例: <template><div id="app"><div>循环打印红绿灯</div><div>红灯3秒后变成绿灯</div><div>绿灯5秒后变成黄灯</…

Python custom modify the __add__ method All In One

Python custom modify the __add__ method All In OnePython 改写 `__add__` 类方法Python custom modify the add method All In OnePython 改写 __add__ 类方法"""# class Juice: # def __init__(self, name, capacity): # self.name = name # …

高亮显示指定内容

问题:海量数据中,高亮显示下表第一行的内容。 解决:开始》条件格式》突出显示单元格规则》小于="id5" 原博客各种作……所以换阵地了,不过每篇都搬过来,实在有点累,想看就自己看吧:http://blog.sina.com.cn/pureiceshadow

项目压测数据

压测流程首先启动 locust 压测脚本 然后启动bus查分模拟脚本 收集数据 压测结束,清理数据采集的数据为:请求相关数据,如响应时间,请求总数据量 资源相关,请求时pod的数量以及实时cpu,内存消耗 请求数量数量,总请求数量,时间分布 apm请求记录,查询请求具体耗时 数据库信…

认识mtv

MTV设计模式 那么 Django 的 MTV 又是怎么回事呢?下面讲解 Django 的设计模式。Django 借鉴了经典的 MVC 模式,它也将交互的过程分为了 3 个层次,也就是 MTV 设计模式;Model:数据存储层,处理所有数据相关的业务,和数据库进行交互,并提供数据的增删改查; Template:模板…

《机器学习的数学修炼》

目录:第六章 线性回归: 1.1三种方法实现:import numpy as np import pandas as pd from scipy import statsdf = pd.read_csv("DBS_SingDollar.csv") # X = df[df.columns[0]] # y = df[df.columns[1]] X = df["DBS"] Y = df["SGD"] slope,in…

变量

变量声明 在ES6以前我们通常通过var来声明变量。首先要进行变量声明,然后再进行使用 var num = 123;//声明变量num,并且赋值为123var声明多个变量 var a = 10, b = 20, c; console.log(delete c, delete b); // false false console.log(a, b, c); // 10 20 undefined// 通过…

内存颗粒, rank, chip, bank, row, column, page

【百度百科】中国港台地区把内存芯片叫做“内存颗粒”,其它芯片叫做“晶片”。百度翻译把“内存颗粒”译为"memory particle",用Bing国际版搜memory particle结果很少。 https://golerugged.com/article/284.htmlThe full name is Quad-Level Cell, a four-layer s…

蔚来杯2022牛客暑期多校训练营4 N-Particle Arts

问题描述 In a confined NIO space, there are nnn NIO particles, the iii-th of which has aia_iai​ joule energy. The NIO particles are very special as they keep colliding with each other randomly. When one particle carrying energy aaa joule collides with ano…

【SpringBoot】定时任务

SpringBoot实现定时任务 SpringBoot创建定时任务,目前主要有以下三种实现方式:基于注解(@Scheduled): 基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上一个任务执行时间的影响; 基于接口(SchedulingConfigurer): 用于实现从数据库获取指定时间来…

蔚来杯2022牛客暑期多校训练营2 G-Link with Monotonic Subsequence

问题描述 First, lets review some definitions. Feel free to skip this part if you are familiar with them. A sequence aaa is an increasing (decreasing) subsequence of a sequence bbb if aaa can be obtained from bbb by deletion of several (possibly, zero or al…

基于NFS实现pod数据持久化

一、nfs-server服务端:挂载一块新磁盘1.1、格式化并挂载parted /dev/vdb mklable xfs parted /dev/vdb primay 0% 100% mkfs.xfs /dev/vdb1 echo "/dev/vdb1 /nfs_share xfs defaults 0 0" >> /etc/fstab mount -a 1.2、安装nfs服务apt install nfs-kernel-s…

Mybatis的缓存

1. Mybatis的一级缓存 Mybatis的一级缓存是默认开启的,你只要搭建一个Mybatis框架,就可以直接使用一级缓存。 一级缓存是SqlSession级别的,通过SqlSession查询的数据会被缓存,下次使用同一个SqlSession查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问,减轻数…

2022年多校冲刺NOIP联训测试13 51nod2023省选联训 第三场

A 隔离 二分答案,简单\(check\)一下即可code #include<cstring> #include<algorithm> #include<cstdio> #include<queue> #include<vector> #include<set> #include<map> #include<iostream> #include<random>using na…

低风险稳健策略:BTC套利策略

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。 币安零手续费带来的机会 从7月8日的20点开始,币安推出了BTC现货交易零手续费的优惠活动,不论是Maker还是Taker都不收取手续费。此次活动包括了交易量最大的BTC/USDT和BTC/BUSD。BT…

适用于ps的Raw格式图像插件

Adobe Camera Raw14 中文版是适用于ps的Raw格式图像插件,安装上Camera Raw插件能在PS中打开编辑RAW格式文件,可以说是专业摄影师必备工具。目前Adobe Camera Raw中文版已经支持大部分主流相机,可以让用户在PS中处理各种形态的RAW文件。 软件下载地址 Camera Raw 软件是作为一…

AJAX概念和AJAX实现_原生JS方式

AJAX概念:概念:ASynchronous JavaScript And XML 异步的JavaScript和XML AJAX是一种在无需重新加载整个网页的情况下能够更新部分网页的技术。通过在后台于服务器进行少量数据叫唤,Ajax可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进…