Jackson基础
一、所需jar包:
jackson-core-x.x.x-rc4.jar、jackson-databind-x.x.x-rc4.jar、jackson-annotations-x.x.x-rc4.jar(本例使用jackson-core-2.6.0-rc4.jar、jackson-databind-2.6.0-rc4.jar、jackson-annotations-2.6.0-rc4.jar)。
二、解析转化:
1、json字符串 < ------ > js
String str="{\"name\" : \"peter\",\"age\" : 25,\"address\" : \"广州\",\"weight\" : \"55.5\",\"handsome\" : true}"; //json字符串 ------> json
ObjectMapper mapper=new ObjectMapper();
JsonNode jsonNode=mapper.readTree(str); //json ------>json字符串
String jsonStr=jsonNode.toString();
2、java实体类 < ------ > json
public class User {
private String name;
private int age;
private String address;
private double weight;
private boolean handsome;
//此处省略构造方法和get、set方法
User user=new User("peter", 20, "广州", 55.5, true); ObjectMapper mapper=new ObjectMapper();
//java实体类 ------> json字符串
String jsonStr=mapper.writeValueAsString(user);
//json字符串------>json
JsonNode json=mapper.readTree(jsonStr); //json ------> java实体类
User user2=mapper.readValue(jsonStr, User.class);
3、List < ------ > json
List<String> list=new ArrayList<String>();
list.add("QQQQQQ");
list.add("WWWWWW");
list.add("EEEEEE");
list.add("RRRRRR"); ObjectMapper mapper=new ObjectMapper();
//List ------> json字符串
String jsonStr=mapper.writeValueAsString(list);
//json字符串 ------> json
JsonNode jsonNode=mapper.readTree(jsonStr);
//json字符串 ------> List
List<String> list2=mapper.readValue(jsonStr, List.class);
4、Map < ------ > json
Map<String, String> map=new HashMap<String, String>();
map.put("name", "peter");
map.put("sex", "Man");
map.put("age", "20"); ObjectMapper mapper=new ObjectMapper();
//Map ------> json字符串
String jsonStr=mapper.writeValueAsString(map);
//json字符串 ------> json
JsonNode json=mapper.readTree(jsonStr);
//json ------> Map
Map<String, String> map2=mapper.readValue(json.toString(), Map.class);
5、Set < ------ > json
Set<String> set=new HashSet<String>();
set.add("QQQQQQ");
set.add("wwwwww");
set.add("eeeeee"); ObjectMapper mapper=new ObjectMapper();
//Set ------> json字符串
String jsonStr=mapper.writeValueAsString(set);
//json字符串 ------> json
JsonNode jsonNode=mapper.readTree(jsonStr);
//json字符串 ------> Set
Set<String> set2=mapper.readValue(jsonStr, Set.class);
三、CRUD:
1、查询数据:
//peter
String name=jsonNode.get("name").asText();
//"peter"
String name1=jsonNode.get("name").toString(); //提取handsome(true)
JsonNode handsome=jsonNode.path("handsome"); int age=jsonNode.get("age").asInt();
double weight=jsonNode.get("weight").asDouble();
boolean handsome=jsonNode.get("handsome").asBoolean()
for (int i = 0; i < jsonNode.size(); i++) {
System.out.println(jsonNode.get(i));
}
2、增加数据:
ObjectMapper mapper=new ObjectMapper();
ObjectNode node=mapper.createObjectNode();
//{"name":"DJ","age":18}
node.put("name", "DJ");
node.put("age", 18);
ArrayNode arrayNode=mapper.createArrayNode();
//["name","age"]
arrayNode.add("name");
arrayNode.add("age");
3、删除数据:
ObjectMapper mapper=new ObjectMapper();
ObjectNode node=mapper.createObjectNode(); node.put("name", "DJ");
node.put("age", 18); node.remove("name");
ArrayNode arrayNode=mapper.createArrayNode();
//["name","age"]
arrayNode.add("name");
arrayNode.add("age");
int index=0;
arrayNode.remove(index);
4、修改数据:
ObjectMapper mapper=new ObjectMapper();
ObjectNode node=mapper.createObjectNode(); node.put("name", "DJ");
node.put("age", 18); //重置数据
node.put("name", "MDJ");
ArrayNode arrayNode=mapper.createArrayNode();
//["name","age"]
arrayNode.add("name");
arrayNode.add("age"); for (int i = 0; i < arrayNode.size(); i++) {
if("name".equals(arrayNode.get(i).asText())){
arrayNode.remove(i);
arrayNode.add("userName");
}
}
Jackson基础的更多相关文章
- Jackson基础笔记
具体内容待完善......手抖,发错了! 一.基本使用 1. bean->jsonStr 2. jsonStr->bean 二.注解使用 三.复杂对象转换 四.其他细节 读取json文本.
- JSON 解析 (二)—— Jackson的使用
Jackson是基于Java语言的一种JSON和Java对象的数据处理工具.功能上简单易用,性能上根据目前主流转换工具比较,Jackson相对比较高效. <dependency> < ...
- Java进阶学习:JSON解析利器JackSon
Java:JSON解析利器JackSon JackSon基础 1.Maven项目引入 <!-- https://mvnrepository.com/artifact/org.codehaus.j ...
- Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题
现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...
- Jackson序列化和反序列化Json数据完整示例
Jackson序列化和反序列化Json数据 Web技术发展的今天,Json和XML已经成为了web数据的事实标准,然而这种格式化的数据手工解析又非常麻烦,软件工程界永远不缺少工具,每当有需求的时候就会 ...
- jackson中JSON字符串节点遍历和修改
有些场景下,在实现一些基础服务和拦截器的时候,我们可能需要在不知道JSON字符串所属对象类型的情况下,对JSON字符串中的某些属性进行遍历和修改,比如,设置或查询一些报文头字段. 在jackson中, ...
- gradle基础的build文件模板_jetty
group '组织名' version '版本号' /* 支持的插件 */ apply plugin: 'java' // 项目基础变成语言支持为java apply plugin: 'war' // ...
- jackson 注脚学习参考
(1)初级我们从几个简单的使用场景开始:重命名属性,忽略属性,以及修改属性所使用的类型.注意:下面的例子仅仅显示了成员属性(field properties),注解同样也可以用在成员方法(getter ...
随机推荐
- 关于kvm虚拟机的克隆方法总结
kvm虚拟机的克隆分为两种情况,第一种kvm宿主机上对虚拟机直接克隆 第二种通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移). 现笔者将分别两种kvm虚拟机克隆的的详细操作过程都记录 ...
- 【CF802C】Heidi and Library (hard) 费用流
[CF802C]Heidi and Library (hard) 题意:有n个人依次来借书,第i人来的时候要求书店里必须有种类为ai的书,种类为i的书要花费ci块钱购入.而书店的容量只有k,多余的书只 ...
- [转][darkbaby]任天堂传——失落的泰坦王朝(中)
TV游戏产业历史上曾有过太多表里不一的外交辞令,然而当年SQUARE和任天堂分道扬镳的真正原因确实如坂口博信在1996年2月29日的PS版 <FFVII>发表会上宣称的那样:“虽然之前有过 ...
- thinkphp实现采集功能的三种方法!
最近在做一些数据分析,由于上网找数据比较麻烦,所以写了一个采集网站数据的方法.具体方法如下: 方法一:QueryList 个人感觉比较好用,采集详情比较不错的选择,但是采集复杂一点的列表,不好用.具体 ...
- ELK之在windows安装filebeat收集日志
登录官方网站下载filebeat的windows客户端 https://www.elastic.co/downloads/beats 下载压缩包,无需解压 修改配置文件filebeat.yml 其余设 ...
- Thread和Runable的区别、Synchronized锁关键字
一.Thread和Runable的区别 Thread是基类,子类必继承他实现其run方法.其也是实现了Runable接口.Thread是普通的类,并非抽象类或者密封类等. Runnable是接口,子类 ...
- hdu 1525 Euclid's Game【 博弈论】
Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first player, subtra ...
- HDU 4514 - 湫湫系列故事——设计风景线 - [并查集判无向图环][树形DP求树的直径]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4514 Time Limit: 6000/3000 MS (Java/Others) Memory Li ...
- 0002python中dict和list的特殊构造
>>> myinfor = {"name":"qiwsir","site":"qiwsir.github.io& ...
- POJ - 1191 棋盘分割 记忆递归 搜索dp+数学
http://poj.org/problem?id=1191 题意:中文题. 题解: 1.关于切割的模拟,用递归 有这样的递归方程(dp方程):f(n,棋盘)=f(n-1,待割的棋盘)+f(1,割下的 ...