文档章节

jackson 使用方法

 起名字什么的太麻烦了
发布于 2016/11/22 18:02
字数 452
阅读 257
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

jackson需要3个jar: jackson-annotations   jackson-core   jackson-databind  版本自己找吧。

用过的版本。

只是简单讲解ObjectMapper的使用

ObjectMapper API:

1.java对象转成json字符串or其他的

import java.io.IOException; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
  
import com.fasterxml.jackson.databind.ObjectMapper; 
  
public class JacksonDemo { 
  public static void main(String[] args) throws ParseException, IOException { 
    User user = new User(); 
    user.setName("小民");  
    user.setEmail("xiaomin@sina.com"); 
    user.setAge(20); 
      
    SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); 
    user.setBirthday(dateformat.parse("1996-10-01"));     
      
    /** 
     * ObjectMapper是JSON操作的核心,Jackson的所有JSON操作都是在ObjectMapper中实现。 
     * ObjectMapper有多个JSON序列化的方法,可以把JSON字符串保存File、OutputStream等不同的介质中。 
     * writeValue(File arg0, Object arg1)把arg1转成json序列,并保存到arg0文件中。 
     * writeValue(OutputStream arg0, Object arg1)把arg1转成json序列,并保存到arg0输出流中。 
     * writeValueAsBytes(Object arg0)把arg0转成json序列,并把结果输出成字节数组。 
     * writeValueAsString(Object arg0)把arg0转成json序列,并把结果输出成字符串。 
     */
    ObjectMapper mapper = new ObjectMapper(); 
      
    //User类转JSON 
    //输出结果:{"name":"小民","age":20,"birthday":844099200000,"email":"xiaomin@sina.com"} 
    String json = mapper.writeValueAsString(user); 
    System.out.println(json); 
      
    //Java集合转JSON 
    //输出结果:[{"name":"小民","age":20,"birthday":844099200000,"email":"xiaomin@sina.com"}] 
    List<User> users = new ArrayList<User>(); 
    users.add(user); 
    String jsonlist = mapper.writeValueAsString(users); 
    System.out.println(jsonlist); 
  } 
} 

例 writeValue():
mapper.writeValue(new File("c:\\user.json"), user); //指定文件写入

 

2.json字符串转java

readValue(json,args)  json :json字符串  args:对象类型可包括List.class    Map.class User.class User[ ].class(数组对象)

:"[{"uid":1,"uname":"www","number":234,"upwd":"456"}, {"uid":5,"uname":"tom","number":3.44,"upwd":"123"}]"

 

代码块黑色不好看就用文本了

import java.io.IOException;
import java.text.ParseException;
import com.fasterxml.jackson.databind.ObjectMapper;
 
public class JacksonDemo {
  public static void main(String[] args) throws ParseException, IOException {
    String json = "{\"name\":\"小民\",\"age\":20,\"birthday\":844099200000,\"email\":\"xiaomin@sina.com\"}";
      
    /**
     * ObjectMapper支持从byte[]、File、InputStream、字符串等数据的JSON反序列化。
     */
    ObjectMapper mapper = new ObjectMapper();
    User user = mapper.readValue(json, User.class);
    System.out.println(user);
  }
}

readValue一样可以从流里读
        File file = new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aa.txt");  
         FileInputStream inputStream = new FileInputStream(file);  
         Student student = mapper.readValue(inputStream,Student.class);

------------------------------------------------------------------------------------------------------------

 

 

 

 

 

粉丝 3
博文 53
码字总数 35355
作品 0
私信 提问
加载中
请先登录后再评论。
opm-server-mirror

代码更新 2009-11-25: 加入反爬虫功能。直接Web访问服务器将跳转到Google。 使用方法 下载index.zip 解压index.zip得到index.php 将index.php传到支持php和cURL的国外服务器上 打开 http:/...

luosheng86
2013/01/29
1K
0
tiny php template--TPT

关于TPT TPT是php实现的用于模板解析小工具,全部实现仅仅60行代码。 配置 DIRCOMPILED和DIRTEMPLATE,分别表示模版编译目录和模版文件目录: define('DIRCOMPILED','/compileddiy');define(......

红猪-侠
2013/03/03
1K
1
SQLet

SQLet 可以让你通过简单的一个命令就从文本文件中执行多个 SQL 语句,同时也可以同时执行多个文件文件。 使用方法:>sqlet.py -d';' -A file1.txt -B file2.txt 'select * from A,B where a2...

匿名
2013/03/13
833
0
JQuery showDialog

使用方法: 先引入jquery库 版本不低于1.4.2 调用函数 showDialog(mode, msg, t, sd_width) 参数说明: 1, mode 模式 a. confirm [确认模式] b. info [显示信息] b. window [AJAX获取网页内容]...

匿名
2012/11/03
9.8K
0
ThinkPHP助手

ThinkPHP助手 简介 ThinkPHP助手是运行在本地的ThinkPHP开发辅助性工具,也是本人的初学LAMP的学习成果,基于ThinkPHP+XML,前端采用jQuery和Bootstrap。主要目的是将应用开发过程中的一些繁琐...

朱__朱
2012/11/16
9.2K
2

没有更多内容

加载失败,请刷新页面

加载更多

五分钟搞定WebRTC视频录制

WebRTC中文社区是一个为大家解决在使用WebRTC当中遇到问题所建立的社区,欢迎更多学习和使用WebRTC的人加入进来,一起建设。 视频录制 在之前的文章里我们提到过视频录制的两种方式:客户端录...

死磕音视频
19分钟前
13
0
互联网技术架构的设计原则 - 架构真经

这本书的英文原名是《Principles for Scaling Web Sites》,又名可扩展网站的50条军规,

这先生
20分钟前
13
0
📢📢 (2020.07.29)上午 10:30 📢📢开启第二轮红包赠书📚活动(小板凳请提前准备好)截至本月月末前还有最后 1 轮分享赠书活动 🎁(会在月末直接揭晓)具体...

本文分享自微信公众号 - 日拱一兵(gh_6235a38420b9)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。...

tan日拱一兵
07/28
0
0
CentOS-Docker安装Elasticsearch(单点)

下载镜像 $ docker pull elasticsearch:7.6.0 运行镜像 $ docker run --restart=always --name elasticsearch -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearc......

-自由人生-
30分钟前
19
0
贼好用的Java工具类库,GitHub星标10k+,你在用吗?

作者:Ryan Wang ryanc.cc/archives/hutool-java-tools-lib 简介 Hutool是Hu + tool的自造词,前者致敬我的“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失...

路人甲Java
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部