一、所需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. 【CF827F】Dirty Arkady's Kitchen DP

    [CF827F]Dirty Arkady's Kitchen 题意:给你一张n个点,m条边的有向图,每条边长度为1,第i条边在[li,ri)的时间内可以进入,求1到n的最短路. $n,m\le 5\t ...

  2. iOS学习笔记06—Category和Extension

    iOS学习笔记06—Category和Extension 一.概述 类别是一种为现有的类添加新方法的方式. 利用Objective-C的动态运行时分配机制,Category提供了一种比继承(inher ...

  3. web自动化时,sendkeys输入长文本时浏览器响应慢或错误时处理

    在做某个测试时,要在文本框中输入大量的文本,文件内容如下: "-----BEGIN CERTIFICATE-----\nMIIBozCCAQwCAQEwDQYJKoZIhvcNAQEFBQA ...

  4. freemarker了解

    今天主要了解了项目流程,了解了这周要做退款详情迁移,了解了freemarker

  5. thinkphp5部署在宝塔面板问题!

    遇到一个问题,就是当thinkphp5部署在宝塔面板上,会出现这个问题: 参考解决办法: http://www.thinkphp.cn/topic/56589.html 首先:thinkphp5的目录 ...

  6. Solve minGW g++ has stopped working 程序停止运行

    之前在机子装了个很早版本的MinGW,苦于不支持c++11,所以打算卸载掉安装个新版本的.可是网上找了很多版本装好后,编译成功,运行的时候总是弹出 *.exe has stopped working的 ...

  7. Redis提供的持久化机制(RDB和AOF)【转载】

    Redis提供的持久化机制    Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却十分迅速. 近 ...

  8. ESXI虚拟机磁盘管理(精简-厚置-精简)

    VMwareESX/ESXi 精简置备(thin)与厚置备(thick)虚拟机磁盘之间转换 VMwareESX/ESXi 虚拟机磁盘thin与thick之间转换 注意:转换前请先关闭虚拟机!!! 一. ...

  9. 单调栈&单调队列学习笔记!

    ummm,,,都是单调系列就都一起学了算了思想应该都差不多呢qwq 其实感觉这俩没有什么可说的鸭QAQ就是维护一个单调的东西,区别在于单调栈是一段进一段出然后单调队列是一段进另一段出?没了 好趴辣重点 ...

  10. 《javascript算法--对象的比较》

    方法一:JSON.stringify() 此方法简单,适用于当两个对象的属性顺序相同的时候. var user1 = {name : "nerd", org: "dev& ...