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 ...
随机推荐
- 关于java中BufferedReader的read()及readLine()方法的使用心得
BufferedReader的readLine()方法是阻塞式的, 如果到达流末尾, 就返回null, 但如果client的socket末经关闭就销毁, 则会产生IO异常. 正常的方法就是使用sock ...
- javascript-mqtt
js client使用paho-mqtt,官网地址:http://www.eclipse.org/paho/,参考http://www.eclipse.org/paho/clients/js/官网给出 ...
- 【Codeforces Round 464】Codeforces #265 (Div. 1)
模拟RD265 ABC三题,Rank58 Codeforces 464 A 题意:给定一个字符串,求比这个字符串字典序大并且和它长度相等的第一个不含有长度大于等于2的回文串的字符串. 思路:首先我们枚 ...
- 利用arduino制作瓦力万年历-1.0
转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 直接先上图: 主要实现: 1.使用了arduino uno R3,因为瓦力内部空间有限,如果 ...
- WIFI底座
自己贴片的51+WIFI的开发板终于到了..还是贴片的好看 美中不足的是需要改一个电阻的阻值..还有就是由于自己的8266和51单片机一块断电上电,所以如果用的USB线的质量不好就会出现 下载不了程序 ...
- [01-01] 示例:用Java爬取新闻
1.分析url <空港双流>数字报刊,访问地址为:http://epaper.slnews.net.cn,现在为了抓取每篇新闻的网页内容. 在浏览器访问该链接后,发现链接出现了变化,看样子 ...
- TCP/IP协议---IP协议
IP协议层 在传输层的下边,链路层的上边. IP层封装后称为数据报(传输层叫数据段,链路层叫数据帧.值得注意的是,不是所有的以太网数据帧都是IP数据报,至少以太网还要使用ARP协议.不是所有的IP数据 ...
- 搭建Zookeepeer源码工程
一.搭建ant环境 1.下载ant&将ant解压至安装目录 http://ant.apache.org/bindownload.cgi 2.配置环境变量 ANT_HOME:配置ant的安装目录 ...
- SPI内容随笔
关于SPI的通信: SPI采用的是主从模式的同步通信,通过时钟来控制:一般情况下,使用双向全双工,收发的数据放在缓冲器FIFO中.数据的传输是主SPI的时钟在控制,从机是不能产生时钟的,如果没有时钟, ...
- 第一章:模型层model layer -- Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 题外话: Django的教程写到这里,就进入 ...