一、所需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基础的更多相关文章

  1. Jackson基础笔记

    具体内容待完善......手抖,发错了! 一.基本使用 1. bean->jsonStr 2. jsonStr->bean 二.注解使用 三.复杂对象转换 四.其他细节 读取json文本.

  2. JSON 解析 (二)—— Jackson的使用

    Jackson是基于Java语言的一种JSON和Java对象的数据处理工具.功能上简单易用,性能上根据目前主流转换工具比较,Jackson相对比较高效. <dependency> < ...

  3. Java进阶学习:JSON解析利器JackSon

    Java:JSON解析利器JackSon JackSon基础 1.Maven项目引入 <!-- https://mvnrepository.com/artifact/org.codehaus.j ...

  4. Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题

    现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...

  5. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...

  6. Jackson序列化和反序列化Json数据完整示例

    Jackson序列化和反序列化Json数据 Web技术发展的今天,Json和XML已经成为了web数据的事实标准,然而这种格式化的数据手工解析又非常麻烦,软件工程界永远不缺少工具,每当有需求的时候就会 ...

  7. jackson中JSON字符串节点遍历和修改

    有些场景下,在实现一些基础服务和拦截器的时候,我们可能需要在不知道JSON字符串所属对象类型的情况下,对JSON字符串中的某些属性进行遍历和修改,比如,设置或查询一些报文头字段. 在jackson中, ...

  8. gradle基础的build文件模板_jetty

    group '组织名' version '版本号' /* 支持的插件 */ apply plugin: 'java' // 项目基础变成语言支持为java apply plugin: 'war' // ...

  9. jackson 注脚学习参考

    (1)初级我们从几个简单的使用场景开始:重命名属性,忽略属性,以及修改属性所使用的类型.注意:下面的例子仅仅显示了成员属性(field properties),注解同样也可以用在成员方法(getter ...

随机推荐

  1. 关于kvm虚拟机的克隆方法总结

    kvm虚拟机的克隆分为两种情况,第一种kvm宿主机上对虚拟机直接克隆 第二种通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移). 现笔者将分别两种kvm虚拟机克隆的的详细操作过程都记录 ...

  2. 【CF802C】Heidi and Library (hard) 费用流

    [CF802C]Heidi and Library (hard) 题意:有n个人依次来借书,第i人来的时候要求书店里必须有种类为ai的书,种类为i的书要花费ci块钱购入.而书店的容量只有k,多余的书只 ...

  3. [转][darkbaby]任天堂传——失落的泰坦王朝(中)

    TV游戏产业历史上曾有过太多表里不一的外交辞令,然而当年SQUARE和任天堂分道扬镳的真正原因确实如坂口博信在1996年2月29日的PS版 <FFVII>发表会上宣称的那样:“虽然之前有过 ...

  4. thinkphp实现采集功能的三种方法!

    最近在做一些数据分析,由于上网找数据比较麻烦,所以写了一个采集网站数据的方法.具体方法如下: 方法一:QueryList 个人感觉比较好用,采集详情比较不错的选择,但是采集复杂一点的列表,不好用.具体 ...

  5. ELK之在windows安装filebeat收集日志

    登录官方网站下载filebeat的windows客户端 https://www.elastic.co/downloads/beats 下载压缩包,无需解压 修改配置文件filebeat.yml 其余设 ...

  6. Thread和Runable的区别、Synchronized锁关键字

    一.Thread和Runable的区别 Thread是基类,子类必继承他实现其run方法.其也是实现了Runable接口.Thread是普通的类,并非抽象类或者密封类等. Runnable是接口,子类 ...

  7. hdu 1525 Euclid's Game【 博弈论】

    Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first player, subtra ...

  8. HDU 4514 - 湫湫系列故事——设计风景线 - [并查集判无向图环][树形DP求树的直径]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4514 Time Limit: 6000/3000 MS (Java/Others) Memory Li ...

  9. 0002python中dict和list的特殊构造

    >>> myinfor = {"name":"qiwsir","site":"qiwsir.github.io& ...

  10. POJ - 1191 棋盘分割 记忆递归 搜索dp+数学

    http://poj.org/problem?id=1191 题意:中文题. 题解: 1.关于切割的模拟,用递归 有这样的递归方程(dp方程):f(n,棋盘)=f(n-1,待割的棋盘)+f(1,割下的 ...