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 ...
随机推荐
- Python2.7设置在shell脚本中自动补全功能的方法
1.新建tab.py文件 #!/usr/bin/env python # python startup file import sys import readline import rlcomplet ...
- postgresql----文本搜索类型和检索函数
postgresql提供两种数据类型用于支持全文检索:tsvector类型产生一个文档(以优化全文检索形式)和tsquery类型用于查询检索. tsvector的值是一个无重复的lexemes排序列表 ...
- Redis+Keepalived实现高可用
使用redis哨兵可以在主服务器出现故障的时候自动切换主从,但是从服务器的IP不同于原主服务器的IP还需要在客户端手动修改IP才能生效 下面使用keepalived实现VIP自动漂移 keepaliv ...
- poj3614 Sunscreen【贪心】
Sunscreen Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11772 Accepted: 4143 Descri ...
- HDU 6312 - Game - [博弈][杭电2018多校赛2]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6312 Problem Description Alice and Bob are playing a ...
- django模板语言转义处理
模板变量的内容,如果含html的话,django的模板系统默认会对输出进行转义,比如把<p>转义成了<p> ,然后再显示出来的时候就如实地显示为<p>.要解决这个问 ...
- 【linux echo -e命令】
man帮助的解释是,允许后面的输出进行转义,假设你是 echo -e "i will use \n $HOME" 输出的将是i will use/root(当前用户的主目录)如果是 ...
- Elasticsearch 的坑爹事——记录一次mapping field修改过程(转)
原文:http://www.cnblogs.com/Creator/p/3722408.html 本文记录一次Elasticsearch mapping field修改过程 团队使用Elasticse ...
- mysql中的日志
关键词:mysql日志,mysql四种日志 一.mysql日志的种类 (1)一般来说,日志有四种,分别为: 1.错误日志:log-err (记录启动,运行,停止mysql时出现的信息) 2.二进制日志 ...
- 使用vue如何默认选中单选框
使用了vue以后,发现这真的是一个灵活高效的框架,能够轻松实现页面的实时刷新.那么,今天先聊聊单选框的使用.一般我们使用单选框,会这么写: //HTML <input type=" c ...