简介: Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。
官方wiki:http://wiki.fasterxml.com/JacksonInFiveMinutes
官方文档:http://wiki.fasterxml.com/JacksonDocumentation
github:https://github.com/FasterXML/jackson
一、准备工作 jackson-databind 下载地址: http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/ 注意:使用此功能需要依赖以下jar文件 jackson-core 和 jackson-annotations github: https://github.com/FasterXML/jackson-annotations 下载地址:http://repo1.maven.org/maven2/com/fasterxml/jackson/core/ 二、实例 (1)java对象转JSON
/*** * json转clazz类(不含类中属性数据验证) */ public static Object jsonToObject(String jsonString, Class clazz){ ObjectMapper mapper = new ObjectMapper(); try { return mapper.readValue(jsonString, clazz); }catch (Exception e) { // TODO Auto-generated catch block } }
(2)json转java对象
json结构:
实现方法:
/*** * json转clazz类(不含类中属性数据验证) */ public static Object jsonToObject(String jsonString, Class clazz){ ObjectMapper mapper = new ObjectMapper(); try { return mapper.readValue(jsonString, clazz); }catch (Exception e) { // TODO Auto-generated catch block } }
(3)java对象转xml(依赖于stax2-api.jar)
XmlMapper xml = new XmlMapper(); StringWriter sw = new StringWriter(); xml.writeValue(sw, bean);
(4)json中取属性值
/** * 实现将包含单一对象和其他集合的json串中的单一对象转换为对象 * @param data :json字符串 * @param nodeName :预获取的节点名称 * @param cls:节点对应转换的对象 * @return */ public static Object parseJsonToObject(String data, String nodeName, Class<?> cls) { // 用来展现解析Json得到的值 Object object = null; ObjectMapper mapper = new ObjectMapper(); try { JsonNode rootNode = mapper.readTree(data); // 读取Json // rootNode.path("xx")返回的还是一个JsonNode对象,调用该JsonNode的相应方法,得到键对应的值 JsonNode strs = rootNode.path(nodeName); // JsonNode strs1 = rootNode.get(nodeName); if (!"".equals(strs)) { object = mapper.readValue(strs.toString(), cls); } } catch (Exception e) { } return object; } /** * 实现获取json串中预获取的节点部分 * @param data:json字符串 * @param nodeName:预获取的节点名称 * @return */ public static String parseJson(String data, String nodeName) { // 用来展现解析Json得到的值 StringBuffer buf = new StringBuffer(); ObjectMapper mapper = new ObjectMapper(); JsonNode rootNode; try { rootNode = mapper.readTree(data); // 读取Json // rootNode.path("xx")返回的还是一个JsonNode对象,调用该JsonNode的相应方法,得到键对应的值 String strs = ""; if(rootNode.path(nodeName).getClass()==ObjectNode.class){ strs = (rootNode.path(nodeName)==null ? "" :rootNode.path(nodeName)).toString(); }else{ strs = rootNode.path(nodeName).asText();// JsonNode strs1 =rootNode.get(nodeName); } buf.append(strs); } catch (Exception e) { e.printStackTrace(); } return buf.toString(); }
(5)json转List
/** * json转List * @param data:json数据 * @param nodeName:预获取的节点名称 * @param clazz:节点对应转换的对象 * @return */ public static <T> List<T> parseJsonToList(String data, String nodeName, Class<?> clazz) { List<T> list = null; TypeFactory t = TypeFactory.defaultInstance(); // 指定容器结构和类型(这里是ArrayList和clazz) ObjectMapper mapper = new ObjectMapper(); JsonNode rootNode; try { rootNode = mapper.readTree(data);// 读取Json // rootNode.path("xx")返回的还是一个JsonNode对象,调用该JsonNode的相应方法,得到键对应的值 if (null != rootNode.get(nodeName)) { JsonNode strs = rootNode.path(nodeName); // JsonNode strs1 = // rootNode.get(nodeName); list = mapper.readValue(strs.toString(),t.constructCollectionType(ArrayList.class, clazz)); } // 如果T确定的情况下可以使用下面的方法: // List<T> list = mapper.readValue(jsonVal, new TypeReference<List<T>>() {}); } catch (IOException e) { } return list; }
三、小结 1.json中的key必须与与java对象中的field属性对应。 2.Date是以long类型进行输出的。
相关推荐
使用jackson完成json与java对象的互相转换实例
Jackson为Java对象和Json的转换提供了有效的手段,是Web开发不可缺少的工具
json格式与java类对象相互转换。json格式转换成java类对象,List,Map。类对象转换成json。
答:将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象] 从Java对象生成JSON的过程称为 [序列化Java对象到JSON] 为什么用它? 答:我数据库中的主键是使用雪花算法生成的,就是因为用id的位数太多,导致在...
JSON与JAVA对象之间的转换 少量数据使用GSON 大量数据使用jackson
JSON与JAVA数据的转换 JSON与JAVA数据的转换 JSON与JAVA数据的转换 JSON与JAVA数据的转换 JSON与JAVA数据的转换
主要介绍了使用Jackson来实现Java对象与JSON的互相转换的教程,文中罗列了3中Jackson的使用方式,需要的朋友可以参考下
jackson是一款非常强大,而且便捷的java工具 , 他可以将java对象转换为json , 配合ajax使用
Java中,使用jackson完成json与Java对象互转
NULL 博文链接:https://zhuchengzzcc.iteye.com/blog/1540485
jackson 对象转json,json转对象,json转集合,json转map,jackson忽略字段,等等
jackson-annotations-2.0.0.jar jackson-core-2.0.0.jar jackson-databind-2.0.0.jar json-lib-2.4-jdk15.jar
本篇文章主要介绍了java的Jackson框架实现轻易转换JSON,Jackson将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象,有兴趣的可以了解一下。
前一段工作中总会遇到使用Java处理JSON的情况,大部分都使用的是开源工具Jackson实现的。 因此总结一下发上来,希望对看到的人有所帮助。
NULL 博文链接:https://gerrard-ok.iteye.com/blog/2017340
jackson lib-用于JSON 格式数据转换的类库,性能特别高,亲测可用。 jackson lib-用于JSON 格式数据转换的类库,性能特别高,亲测可用。 jackson lib-用于JSON 格式数据转换的类库,性能特别高,亲测可用。 jackson ...
NULL 博文链接:https://fanjf.iteye.com/blog/1455184
(1)Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。 (2)相比json-lib框架,Jackson所依赖的jar包较少,只需下载:jackson-all-1.6.*.jar ~ jackson-all-1.8.0.jar 任何...
Json 数据格式化 jackson
webservice接口开发中,厂家提供的json格式,json与obj的相互转化,相信大家都很熟悉,考虑到厂家提供的接口会随着版本的不同,字段也会相应的增加,这个时候进行对象的转换就不能保证json与obj转换是一一对应的,...