jackson的简单实用实例(json)
一个json格式的字符串比如:
{"status":10001,"code":"HDkGzI","pubkey":"DBCEEECFD3F6808C85254B1","servertime":1475741518}
,在java中对应的字符串为:
"{\"status\":10001,\"code\":\"HDkGzI\",\"pubkey\":\"DBCEEECFD3F6808C85254B1\",\"servertime\":1475741518}"
格式化后:
{
"status": 10001,
"code": "HDkGzI",
"pubkey": "DBCEEECFD3F6808C85254B1",
"servertime": 1475741518
}
有的时候我们想在这个json格式字符串中去一项,比如想去出pubkey这一项,
那么结合jackson这个工具就可以很方便地解决这个问题。
代码如下:
package com.test.javaAPI.json; import java.io.IOException;
import java.util.Map; import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Test; import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream; public class JacksonTest2 {
public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
String str = new JacksonTest2().removeJsonObjByKey(UtilJackson.jsonStr4, UtilJackson.jsonStr4_KEY1);
System.out.println(str);
} /**
* 根据键除去json格式字符串中的某一个键值对
*
* @param jsonStr
* @param key
* @return
* @throws IOException
* @throws JsonMappingException
* @throws JsonParseException
*/
public String removeJsonObjByKey(String jsonStr, String key)
throws JsonParseException, JsonMappingException, IOException {
ObjectMapper objMap = new ObjectMapper();
// 1 把json格式字符串转换为 java.util.Map
Map map = objMap.readValue(jsonStr, Map.class);
// 2 删除map中的对应key的项目
map.remove(key);
// 准备字节流,接收ObjectMapper中写出的输出流
ByteOutputStream bops = new ByteOutputStream();
// 3 把map重新转换为json格式字符串
objMap.writeValue(bops, map);
if (!"".equals(bops)) {
return bops.toString();
}
return "";
} /**
* 方法的作用:去除一个json格式字符串的某一个key 删除 这个json字符串里的这个key对应的对象 该方法与框架中的 String
* cn.sinobest.framework.web.his.JsonManager.removeDataPackage(String
* jsonStr) 这个方法的功能一致
*
* @param jsonKey
* @return
* @throws JsonParseException
* @throws JsonMappingException
* @throws IOException
*/
@Test
public String removeDataPackage(String jsonKey) throws JsonParseException, JsonMappingException, IOException {
ObjectMapper objMap = new ObjectMapper();
Map map = objMap.readValue(UtilJackson.jsonStr_HN, Map.class);
// map.remove("DataPackage");
map.remove(jsonKey);
ByteOutputStream bops = new ByteOutputStream();
objMap.writeValue(bops, map);
System.out.println(bops.toString());
return null;
} }
其中main方法字符串分别为:
public static String jsonStr4 = "{\"verified\":false,\"name\":{\"last\":\"Hankcs\",\"first\":\"Joe\"},\"userImage\":\"Rm9vYmFyIQ==\",\"gender\":\"MALE\"}";
public static String jsonStr4_KEY1 = "verified";
运行后的结果为:
{"name":{"last":"Hankcs","first":"Joe"},"userImage":"Rm9vYmFyIQ==","gender":"MALE"},
而原来的字符串jsonStr4为:
{"verified":false,"name":{"last":"Hankcs","first":"Joe"},"userImage":"Rm9vYmFyIQ==","gender":"MALE"}。
jackson的简单实用实例(json)的更多相关文章
- Ajax的简单实用实例
我将实现一个简单的Ajax页面无刷新进行用户验证案例: 效果如下图:
- python--Numpy简单实用实例
# _*_ coding:utf-8 _*_ import numpy as np #创建数组 a=np.array([[1.,7.,0.],[-2.,1.,2.]]) print a #ndarra ...
- 简单实用的PHP防注入类实例
这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注 ...
- 7. Jackson用树模型处理JSON是必备技能,不信你看
每棵大树,都曾只是一粒种子.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BA ...
- 分布式搜索ElasticSearch构建集群与简单搜索实例应用
分布式搜索ElasticSearch构建集群与简单搜索实例应用 关于ElasticSearch不介绍了,直接说应用. 分布式ElasticSearch集群构建的方法. 1.通过在程序中创建一个嵌入es ...
- 1. 初识Jackson -- 世界上最好的JSON库
要想人前显贵,必须背后受罪.关注公众号[BAT的乌托邦]开启专栏式学习,拒绝浅尝辄止.本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈.MyBatis.中 ...
- 2. 妈呀,Jackson原来是这样写JSON的
没有人永远18岁,但永远有人18岁.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众 ...
- 经验分享:10个简单实用的 jQuery 代码片段
尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...
- C#_简单实用的翻页
简单实用的生成翻页HTML辅助类 C# using System.Text; namespace ClassLibrary { /// <summary> /// /// </sum ...
随机推荐
- python IOError: invalid mode ('r') or filename
我想要用pandas.read_table()将数据表中的数据读到一个pandas DataFrame对象中: import pandas as pd unames = ['user_id', 'ge ...
- ASP.NET实现列表页连接查询 拼接sql语句 绑定grivdView
ASP.NET实现列表页连接查询 拼接sql语句 如图效果: 基本需求:1.当页面第一次加载的时候默认查询一个月时间(或者说是登陆者所属权限的所有数据)的数据绑定到gridView 2.添加查询条件时 ...
- ubuntu FTP服务安装
//安装vsftp apt-get install vsftpd -y //增加账号 //1 查找 nologin位置 /usr/sbin/nologin useradd -d /alidata/ww ...
- Oracle 客户端配置笔记
1.右击桌面的我的电脑 -> 高级 -> 环境变量,新建 1) 变量名:ORACLE_HOME 变量值:D:\app\instantclient_11_2 2) 变量名:TNS_ADMIN ...
- powerdesigener 12.5注册机
下载链接 下载链接 密码:awg9
- C学习之指针强化
char *p = (char *)malloc(100); malloc是用于分配内存的函数,它的参数为int型,表示分配多少个字节长度,其返回类型为void*,在这里用char*就是强制转化,指定 ...
- Mysql 批量杀死进程
正常情况下kill id,即可,但是有时候某一异常连接特别多的时候如此操作会让人抓狂,下面记录下小方法: use information_schema; select concat('kill ',i ...
- SQL Server 多表删除
第一步: 建表 create table t1(x int, y int); create table t2(x int, y int); go insert into t1(x,y) values( ...
- discuz_style_default.xml 修改
<?xml version="1.0" encoding="ISO-8859-1"?> <root> <item id=" ...
- Hibernate 配置详解(12) 补充
hibernate.hbm2ddl.import_files_sql_extractor 这个配置项用于补充这篇文章: http://blog.csdn.net/stefwu/article/deta ...