JSON格式及jackson.jar包的安装与配置

目录

为什么会出现JSON?

JSON格式

jackson的jar文件下载与配置

jackson的简单使用

读取json格式

将现有对象转换成json序列


为什么会出现JSON?

在JSON出现前,由于多种编程语言的语法细节都不是完全相同,在网络传输信息时无法使用同一的格式,只能是程序员根据不同的编程语言写不同的处理函数,就造成了大大的资源浪费,为了统一数据交换格式,JSON应运而生,它统一了网络信息交换格式,提高了广大程序员的工作效率。

这是百度百科对他的介绍

JSON是一种轻量级的数据交换格式,易于人类阅读和编写,同时也便于机器解析和生成。它采用完全独立于编程语言的文本格式,但也使用了类似于C语言家族的约定。JSON是数据表示的理想选择,尤其在网络传输和存储过程中。

JSON格式

html 复制代码
{"name":"李四", "age":23, "dog":{"name":"tom"} ,"nums":[1,2,3,4,5,6]}

"变量名":变量值 ,"变量名":变量值 ,"数组变量名":["变量名":变量值,"变量名":变量值].....

最外面使用花括号"{}"包围。

每个键值对由一个键和一个值组成,键和值之间用冒号":"分隔,键值对之间用逗号","分隔。

键必须是字符串,并且用双引号""包围 。

值可以是字符串、数值、布尔值、数组、对象或"null"。

编译器中是不能直接处理JSON格式的,不过现在有很多公司自己开发了相关的类供我们使用,这里演示一下Jackson相关jar的下载与配置

jackson的jar文件下载与配置

https://mvnrepository.com/

首先进入上面这个网站

输入框搜索 jackson ,我们只需要下载前三个即可

点击第一个进去,会显示下面的这个页面

选择版本号,这里我选择 2.18.0

点击Files栏的View All

任意选择一个jar包安装即可,这里我选的是被点击过的那个(显得更全一些 ....)

第二个第三个操作方式和上面一样,全下下来即可

IDEA中配置jar文件

项目中创建一个lib文件夹,和src文件夹同级(如果有就不需要新建了)

然后把刚刚下载的三个jar包复制到lib文件夹中

右键,添加为库,这里我是中文版,英文叫Add as Library

选择模块库,英文是Module Library

点击确定之后就可以使用了!

jackson的简单使用

读取json格式

java 复制代码
        String s="{\"name\":\"李四\",\"age\":23,\"dog\":{\"name\":\"er\"}}";

        ObjectMapper mapper=new ObjectMapper();
        People x=mapper.readValue(s,People.class);

        System.out.println(x);

创建jar包中的ObjectMapper类,使用它的readValue即可读取相应的JSON字符串,主要还要传输一个类的字节码,表示这是哪一个类的JSON序列,它会返回相应的对象,这里我重写了它的toString方法 ,输出如下

将现有对象转换成json序列

java 复制代码
        Dog dog=new Dog("er");
        People p=new People("李四",23,dog);

        ObjectMapper mapper=new ObjectMapper();
        String s=mapper.writeValueAsString(p);
        System.out.println(s);

也可以利用writeValueAsString方法将现有对象转换成相应的json格式字符串,以上输出如下

相关推荐
大黄说说2 分钟前
深入理解 Go 协程 Goroutine:并发编程的核心精髓
java·数据库·python
许彰午27 分钟前
38_Java设计模式之装饰器模式
java·设计模式·装饰器模式
折哥的程序人生 · 物流技术专研33 分钟前
Java 23 种设计模式:从踩坑到精通 | 组合模式 —— 树形结构处理,部分与整体一视同仁
java·组合模式·java面试·springsecurity·结构型模式·java设计模式·从踩坑到精通
郝学胜-神的一滴43 分钟前
完全二叉树与堆底层原理深度剖析 | 手写C++大顶堆实现
java·开发语言·数据结构·c++·python·算法
农民小飞侠1 小时前
[leetcode] 165. Compare Version Numbers
java·算法·leetcode
砍材农夫1 小时前
物联网实战|Spring Boot + Netty 搭建 MQTT 消息路由与流转层
java·spring boot·后端·物联网·spring
黄毛火烧雪下1 小时前
Java 基础笔记:文件、递归与字符编码
java·开发语言·笔记
学计算机的计算基1 小时前
链表算法上篇:LeetCode 206/234/141/142/160/21 题解与易错点
java·笔记·算法·链表
信也科技布道师1 小时前
从Istio 503 NC 错误深入理解 Mesh 路由全链路原理
java·服务器·网络
swordbob1 小时前
3 大 I/O 模型BIO / NIO / AIO
java·linux·spring