Java之JSON操作(Jackson)
Java to JSON:
package json.jackson; import bean.User;
import com.fasterxml.jackson.databind.ObjectMapper; import java.io.File;
import java.util.Map; /**
* Jackson – Java to JSON
* 功能:JSON与Java对象、Map等类型转换,JSON文件的读写等
* 依赖包:jackson-databind-2.8.11.1.jar、jackson-core-2.8.10.jar、jackson-annotations-2.8.0.jar
* https://github.com/FasterXML/jackson-databind
*/
public class JavaToJSON {
public static void main(String[] ars) throws Exception {
User user = new User("tom", 25, "NO.1 street");
ObjectMapper objectMapper = new ObjectMapper(); // Java对象转json,也支持bytes
String json = objectMapper.writeValueAsString(user);
System.out.println("Java对象转json:" + json); // json转Java对象
User user2 = objectMapper.readValue(json, User.class);
System.out.println("json转Java对象" + user2); // 读文件
String jsonFilePath = "src/main/java/json/jackson/JsonReader.json";
User user3 = objectMapper.readValue(new File(jsonFilePath), User.class);
System.out.println("读取JSON文件:" + user3);
// 写文件
objectMapper.writeValue(new File(jsonFilePath), user3); // json转map,也支持List
Map map = objectMapper.readValue(json, Map.class);
System.out.println("json转map:" + map); // map转json字符串,支持所有类型转字符串
String json2 = objectMapper.writeValueAsString(map);
System.out.println("map转json:" + json2); }
}
JsonNode:
package json.jackson; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import java.io.File;
import java.util.List; /**
* JsonNode
* 处理复杂的JSON,返回多个对象的情况
* 从文件中读取复杂的JSON,根据key找到对应value值
* 依赖包:jackson-databind-2.8.11.1.jar、jackson-core-2.8.10.jar、jackson-annotations-2.8.0.jar
* https://github.com/FasterXML/jackson-databind
*/
public class JSONTreeDemo {
public static void main(String[] ars) throws Exception {
ObjectMapper objectMapper = new ObjectMapper();
String jsonFilePath = "src/main/java/json/jackson/Json2.json";
// 以树形态支持多对象的情况:支持读取多种类型
JsonNode jsonNode = objectMapper.readTree(new File(jsonFilePath));
System.out.println("jsonNode:" + jsonNode);
// 根据key查询多个值,返回list
List<JsonNode> list = jsonNode.findValues("name");
System.out.println("Values:" + list); // 根据key查询单个值
String channel = jsonNode.get("channel").asText();
System.out.println("查询channel的值:" + channel);
}
}
Java之JSON操作(Jackson)的更多相关文章
- Java之JSON操作(gson)
使用gson包操作JSON数据. 依赖包:gson-2.8.2.jar <dependency> <groupId>com.google.code.gson</group ...
- Java解析json(二):jackson
Java解析json(二):jackson 官方参考 Jackson Home Page:https://github.com/FasterXML/jackson Jackson Wiki:htt ...
- Java和js操作json
Js中 Json字符串转json对象 //将json格式的字符串转为json对象 var t = JSON.parse('{"name":123}'); alert(t.name) ...
- Java 的 JSON 开源类库选择比较(zz)
在看了作者的介绍,然后我又到mvnrepository上去看了各个库的的使用数之后,发现只能在jackson和gson之间做选择. 以下是原文 有效选择七个关于Java的JSON开源类库 April ...
- @JsonCreator自定义反序列化函数-JSON框架Jackson精解第5篇
Jackson是Spring Boot(SpringBoot)默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的, ...
- json解析jackson ,Gson,等知识总结
相关资料链接: Java构造和解析json数据的两种方法详解 java解析json Android网络之数据分析---使用Google Gson 解析Json数据 使用jackson在java中处理j ...
- Json操作(DynamicJson)
Json的简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了 ...
- java系列--JSON数据的处理
http://blog.csdn.net/qh_java/article/details/38610599 http://www.cnblogs.com/lanxuezaipiao/archive/2 ...
- Java之JSON数据
特别注意:使用JSON前需要导包 操作步骤地址:http://blog.csdn.net/baidu_37107022/article/details/70876993 1.定义 JSON(JavaS ...
随机推荐
- Kafka 笔记1
Kafka 是对日志文件进行 append 操作,因此磁盘检索的开支是较小的:同时 为了减少磁盘写入的次数,broker 会将消息暂时 buffer 起来,当消息的个数(或大小)达到一定阀值时,再 f ...
- 修改windows7本地策略--不能挂载磁盘和复制 -- 黏贴板-驱动器映射
1.gpedit.msc -- > 计算机配置-- > 管理模板 -- > windows 组件 -- > 远程桌面服务 -- > 远程桌面服务主机 -- > 设备 ...
- 学习Android(入门基础和实用教程)
为了方便大家学习,准备录制Android基础篇的视频教程, https://item.taobao.com/item.htm?spm=0.7095261.0.0.17a61debAKIDPI& ...
- python游戏开发之俄罗斯方块(一):简版
编程语言:python(3.6.4) 主要应用的模块:pygame (下面有源码,但是拒绝分享完整的源码,下面的代码整合起来就是完整的源码) 首先列出我的核心思路: 1,图像由"核心变量&q ...
- c#静态构造函数 与 构造函数 你是否还记得?(转载)
构造函数这个概念,在我们刚开始学习编程语言的时候,就被老师一遍一遍的教着.亲,现在你还记得静态构造函数的适用场景吗?如果没有,那么我们一起来复习一下吧.静态构造函数是在构造函数方法前面添加了stati ...
- angularjs springMVC 交互
AngularJS中的$resource使用与Restful资源交互 1.AngularJS中的 $resource 这个服务可以创建一个资源对象,我们可以用它非常方便地同支持RESTful的服务端数 ...
- eclipse取消空格、等号、分号自动录入
默认eclipse中按空格.等号.分号等键时,会将提示框中的文字输入到编辑内容中,但是很多时候我们并不希望录入,可如下设置. 1.打开 Eclipse -> Window -> Perfe ...
- Linux-C-Program:makefile
注:本文参照博客:https://blog.csdn.net/initphp/article/details/7692923 1. 概述2. 示例说明2.1 无makefile编译2.2 有makef ...
- CrackMe-005全破详解(图文+源码)--上篇
逆向破解 | 逆向 | 逆向分析 | CrackMe | Crack | CrackMe5 | CrackMe05 前言 CrackMe005,都说比较变态,很多人给放过去了,但是我还是决定上了它,既 ...
- Tomcat通过Redis实现session共享的完整部署记录
对于生产环境有了一定规模的tomcat集群业务来说,要实现session会话共享,比较稳妥的方式就是使用数据库持久化session.为什么要持久化session(共享session)呢?因为在客户端每 ...