Jackson 教程示例

Json常用的类库如下

Jackson:http://jackson.codehaus.org/

JSON-lib:http://json-lib.sourceforge.net/

Gson:http://code.google.com/p/google-gson/

Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。不仅限于对java对象,对于Map、List、Array同样有效。

JsonLib的教程参考之前写过的文章http://blog.csdn.net/xiaokui_wingfly/article/details/39890969

或其他朋友的文章:http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html

XStream : http://blog.csdn.net/xiaokui_wingfly/article/details/46470145

一、准备工作

1、 下载依赖库jar包

Jackson的jar官方下载地址:http://wiki.fasterxml.com/JacksonDownload

然后在工程中导入这个jar包即可开始工作

官方示例:http://wiki.fasterxml.com/JacksonInFiveMinutes

如果你需要转换xml,那么还需要stax2-api.jar

:以下我的所有示例中省略getter和setter方法,请自行添加

示例1:一个简单的Json和JavaBean之间的转换

/**
     * JavaBean/Map/List/Array互相转换JSON
     */
    public static void main(String[] args) {
        ObjectMapper objectMapper = new ObjectMapper();
        User user = new User();
        user.setAddress("中国河南省");
        user.setEmail("[email protected]");
        user.setId(1);
        user.setName("X-rapido");
        user.setBirthday(new Birthday("2015-08-06"));

        List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");

        Map<String, Object> map = new HashMap<String, Object>();
        map.put("a", "1");
        map.put("b", "2");
        map.put("c", "3");
        map.put("list", list);

        String []sz = {"a","b","c"};

        try {
            System.out.println(objectMapper.writeValueAsString(user));
            System.out.println(objectMapper.writeValueAsString(list));
            System.out.println(objectMapper.writeValueAsString(map));
            System.out.println(objectMapper.writeValueAsString(sz));

            String s = "{\"name\":\"X-rapido\"}";
            // Json转换JavaBean
            User a = objectMapper.readValue(s, User.class);
            System.out.println(a.getName());

            // JavaBean转换Json
            System.out.println(objectMapper.writeValueAsString(a));

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
输出打印:
{"id":1,"name":"X-rapido","email":"[email protected]","address":"中国河南省","birthday":{"birthday":"2015-08-06"}}
["a","b","c"]
{"b":"2","c":"3","a":"1","list":["a","b","c"]}
["a","b","c"]
X-rapido
{"id":0,"name":"X-rapido","email":null,"address":null,"birthday":null}

对于如何与xml进行交互和JsonGenerator类的用法还有各个write、writeObject方法参考网友文章http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html 不再罗嗦了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-29 16:02:47

Jackson 教程示例的相关文章

关于31天App教程示例中一些因SDK版本而出现的问题(转)

由于国外那个知名的31天案例教程比较老,所用官方API是2008年时的2.X,所以在现在的Xcode3-4之后或多或少都有编译警告和错误信息.必须做些适应iOS版本的代码更改才能顺利编译通过. Day1:Minutes to Midnight NSDate* now = [NSDate date];int hour = 23 - [[now dateWithCalendarFormat:nil timeZone:nil] hourOfDay];int min = 59 - [[now dateW

jackson使用示例

Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. Jackson 2.x版提供了三个JAR包供下载: 1. Core库:streaming parser/generator,即流式的解析器和生成器.下载: http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.1.0/jackson-core-2.1.0.jar 2. Annotation

来自Jakob Jenkov的Jackson教程

Jakob Jenkov是Java界的牛人. 下面是收集的与Jackson有关的教程: JSON: http://tutorials.jenkov.com/java-json/index.html Jackson: http://tutorials.jenkov.com/java-json/jackson-installation.html http://tutorials.jenkov.com/java-json/jackson-objectmapper.html http://tutoria

美国海军(NPS)的OSG教程——示例代码一

//OSG 3.2版本 osg::Group *root = new osg::Group(); osg::Geode *pyramidGeode = new osg::Geode(); deprecated_osg::Geometry *pyramidGeometry = new deprecated_osg::Geometry(); //注意,用deprecated_osg,某些功能以后可能去掉 pyramidGeode->addDrawable( pyramidGeometry ); ro

MFC多线程创建教程示例

最近对VC中的多线程比较感兴趣,查了资料,感觉这个写的比较实用.对博客里的内容进行部分改正,以实用VS2013. http://blog.csdn.net/chen825919148/article/details/7904169 一.问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为"延时6秒",添加按钮的响应函数,代

linux下安装protobuf教程+示例(详细)

(.pb.h:9:42: fatal error: google/protobuf/stubs/common.h: No such file or directory 看这个就应该知道是没有找到头文件,那么可以使用g++ 的-I 参数: -I/usr/local/lib/protobuf/include来命令g++在/usr/local/lib/protobuf下查找头文件 以上/usr/local/lib/protobuf/是我的protobuf的安装地址,请替换成你的 ) 1 在网站 htt

struts2官方 中文教程 系列七:消息资源文件

介绍 在本教程中,我们将探索使用Struts 2消息资源功能(也称为 resource bundles 资源绑定).消息资源提供了一种简单的方法,可以将文本放在一个视图页面中,通过应用程序,创建表单字段标签,并根据用户的语言环境将文本更改为特定的语言. 贴个本帖的地址,以免被爬:struts2官方 中文教程 系列七:消息资源文件  即 http://www.cnblogs.com/linghaoxinpian/p/6906720.html 下载本章节代码 信息资源属性文件 在Struts2 we

SQL Server-简单查询示例(十一)

前言 本节我们讲讲一些简单查询语句示例以及需要注意的地方,简短的内容,深入的理解. EOMONTH 在SQL Server 2012的教程示例中,对于Sales.Orders表的查询,需要返回每月最后一天的订单.我们普遍的查询如下 USE TSQL2012 GO SELECT orderid, orderdate, custid, empid FROM Sales.Orders WHERE orderdate = DATEADD(MONTH, DATEDIFF(MONTH, '19991231'

Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】

Laravel 5 系列入门教程(一)[最适合中国人的 Laravel 教程] 分享⋅ johnlui⋅ 于 2年前 ⋅ 最后回复由 skys215于 11个月前 ⋅ 17543 阅读 原文发表在我的个人网站:Laravel 5 系列入门教程(一)[最适合中国人的 Laravel 教程] 本教程示例代码见:https://github.com/johnlui/Learn-Laravel-5 大家在任何地方卡住,最快捷的解决方式就是去看我的示例代码. Laravel 5 中文文档: http://