Java学习之jackson篇

0x00 前言

本篇内容比较简单,简单记录。

0x01 Json 概述

概述:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

这里复制了一段百度百科的解释,其实内容都可以用一句话来概括。

json主要用于数据交互,主要有键值对来表示。

而在Java里面需要解析json需要用到json的解析器。

0x02 jackson 解析器

在Java里面常见的json解析器有

Jsonlib,Gson,fastjson,jackson

那么这里拿jackson来进行演示。

常用方法

1. readValue(json字符串数据,Class)      json转换为java对象

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

注解:

1. @JsonIgnore:排除属性。

2. @JsonFormat:属性值得格式化

对象转Json

这里还需要定义一个实体类,这里就不写了。

package com.test.domain;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; public class jsonDemo {
public static void main(String[] args) {
Person person = new Person();
person.setName("xiaoming");
person.setSex("name");
person.setAge(18);
ObjectMapper objectMapper = new ObjectMapper();
try {
String s = objectMapper.writeValueAsString(person);
System.out.println(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
} }
}

显示数据:

{"name":"xiaoming","age":18,"sex":"name"}

list集合转换json

package com.test.domain;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import java.util.ArrayList;
import java.util.List; public class jsonDemo {
public static void main(String[] args) {
Person p1= new Person();
p1.setName("xiaoming");
p1.setSex("name");
p1.setAge(18);
Person p2= new Person();
p2.setName("xiaoming");
p2.setSex("name");
p2.setAge(18);
ObjectMapper objectMapper = new ObjectMapper();
List<Person> list = new ArrayList<>();
list.add(p1);
list.add(p2); try {
String s = objectMapper.writeValueAsString(list);
System.out.println(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}

json转Java对象

package com.test.domain;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException;
import java.util.ArrayList;
import java.util.List; public class jsonDemo {
public static void main(String[] args) throws IOException {
String json = "{\"sex\":\"男\",\"age\":\"18\",\"name\":\"xiaoming\"}";
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(json, Person.class);
System.out.println(person.toString());
}
}

0x03 结尾

后面准备开始更新Java框架内容。

Java学习之jackson篇的更多相关文章

  1. 从.Net到Java学习第十一篇——SpringBoot登录实现

    从.Net到Java学习系列目录 通过前面10篇文章的学习,相信我们对SpringBoot已经有了一些了解,那么如何来验证我们的学习成果呢?当然是通过做项目来证明啦!所以从这一篇开始我将会对之前自己做 ...

  2. Java学习之反射篇

    Java学习之反射篇 0x00 前言 今天简单来记录一下,反射与注解的一些东西,反射这个机制对于后面的java反序列化漏洞研究和代码审计也是比较重要. 0x01 反射机制概述 Java反射是Java非 ...

  3. Java学习之注解篇

    Java学习之注解篇 0x00 前言 续上篇文章,这篇文章就来写一下注解的相关内容. 0x01 注解概述 Java注解(Annotation)又称Java标注,是JDK5.0约会的一种注释机制. 和J ...

  4. 从.Net到Java学习第八篇——SpringBoot实现session共享和国际化

    从.Net到Java学习系列目录 SpringBoot Session共享 修改pom.xml添加依赖 <!--spring session--> <dependency> & ...

  5. 从.Net到Java学习第四篇——spring boot+redis

    从.Net到Java学习系列目录 “学习java已经十天,有时也怀念当初.net的经典,让这语言将你我相连,怀念你......”接上一篇,本篇使用到的框架redis.FastJSON. 环境准备 安装 ...

  6. 从.Net到Java学习第三篇——spring boot+mybatis+mysql

    从.Net到Java学习第一篇——开篇 环境:mysql5.7 新建mysql数据库demo,然后执行如下sql脚本进行数据表创建和数据初始化: -- ------------------------ ...

  7. 从.Net到Java学习第十篇——Spring Boot文件上传和下载

    从.Net到Java学习系列目录 图片上传 Spring Boot中的文件上传就是Spring MVC中的文件上传,将其集成进来了. 在模板目录创建一个新的页面 profile/uploadPage. ...

  8. 从.Net到Java学习第七篇——SpringBoot Redis 缓存穿透

    从.Net到Java学习系列目录 场景描述:我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回.这个时候如果我们查询的某一个数 ...

  9. 从.Net到Java学习第五篇——Spring Boot &&Profile &&Swagger2

    从.Net到Java学习系列目录 刚学java不久,我有个疑问,为何用到的各种java开源jar包许多都是阿里巴巴的开源项目,为何几乎很少见百度和腾讯?不是说好的BAT吗? Spring Boot 的 ...

随机推荐

  1. vim命令c编程

    1.移动光标的常用命令 h--向左移动光标 l--向右移动光标 j--向下移动光标 k--向上移动光标 ^--将光标移动至该行的开头 $--将光标移动至该行的结尾 O--将光标移动至该行行首 G--将 ...

  2. IPFS是什么?IPFS与Filecoin有什么关系?

    Filecoin 基于 IPFS 的去中心化存储网络,是 IPFS 上唯一的激励层,是一个基于区块链技术发行的通证.Filecoin 翻译过来就是文件币,简称为 FIL. 在 FIlecoin 网络中 ...

  3. nodeJS详解2

    Nodejs应用场景 创建应用服务 web开发 接口开发 客户端应用工具  gulp webpack vue脚手架 react脚手架 小程序 NodeJs基于 Commonjs模块化开发的规范,它定义 ...

  4. python基础之流程控制(2)

    今天将是基础篇的最后一篇,咱们来补上最后一个内容,流程控制for循环 For 循环 一.为什么有for循环? for循环能做的事情,while循环全都可以实现,但是在某些情境下,for循环相对于whi ...

  5. 利用过滤器Filter和特性Attribute实现对Web API返回结果的封装和统一异常处理

    在我们开发Web API应用的时候,我们可以借鉴ABP框架的过滤器Filter和特性Attribute的应用,实现对Web API返回结果的封装和统一异常处理,本篇随笔介绍利用AuthorizeAtt ...

  6. ES 分页方案

    ES 中,存在三种常见的分页方案: FROM, SIZE Search-After Scroll 下面将依次比较三种方案之间的 trede-off,并给出相应建议的应用场景. 常见分页,FROM, S ...

  7. day-02-循环

    while 循环 why:大气循环, 吃饭,上课,睡觉,日复一日,歌曲列表循序环,程序中:输入用户名密码, what:while 无限循环. how: 基本结构: while 条件: 循环体 初识循环 ...

  8. 安装Dynamics CRM Report出错处理一

    删除下面两个注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce.HKEY_CURRENT_USER\So ...

  9. 【近取 key】NABCD分析

    项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-NABCD分析 我在这个课程的目标是 提升工程能力和团队意识,熟悉软件开发的流程 这个作 ...

  10. spring-cloud-oauth2 认证授权

    什么是OAuth2? OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该令牌在限定时间. ...