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 ...
随机推荐
- python3.6小程序
# 查询类python 3.6 pycharm中运行(唔错) people = { '王飞': { '电话': '2341', '地址': '西方镇忘川村' }, '小瘪三': { '电话': '91 ...
- ubuntu RPLIDAR A2的使用
RPLIDAR是由RoboPeak Team,SlamTec公司开发的低成本2D LIDAR解决方案.它可以扫描6度半径内的360°环境. RPLIDAR的输出非常适合构建地图,做slam或构建3D模 ...
- MySQL(十一)视图及存储过程
一.视图 视图是虚拟的表,它只包含使用时动态检索数据的查询. 1.使用视图的好处 ①重用SQL语句: ②简化复杂的SQL操作(可以方便的重用它而不必知道它的基本查询细节): ③使用表的组成部分而不是整 ...
- Android PageAdapter翻译
介绍:ViewPager和PagerAdapter结合使用 public abstract class PagerAdapter extends Object java.lang.Object ...
- STL语法——集合:set 安迪的第一个字典(Andy's First Dictionary,UVa 10815)
Description Andy, , has a dream - he wants to produce his very own dictionary. This is not an easy t ...
- SkylineGlobe 6.6 三维地图上实现自定义右键菜单示例代码
1.OnRButtonDown.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...
- sql server使用的相关基础知识
1.表的管理--表和列的命名 必须以字母开头 长度不能超过128字符 不要使用sql server的保留字 只能使用如下字符A-Z,a-z,0-9,$,#,_等等 2.表的管理--支持的数据类型 字符 ...
- Django框架知识点整理
1.安装django, pip install django 或者是通过 “==”符号指定版本号. 2.创建一个Django项目: django-admin createproject project ...
- 通过容器提交镜像(docker commit)以及推送镜像(docker push)笔记
在本地创建一个容器后,可以依据这个容器创建本地镜像,并可把这个镜像推送到Docker hub中,以便在网络上下载使用. 查看镜像 [root@docker-test1 ~]# docker image ...
- hover设定触发时间间隔
500毫秒执行一次 $(".banner_menu_content li a").hover(function(){ var aa=$(this).text().trim(); s ...