Java使用jackson操作Json格式数据

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,她是 JavaScript原生态的数据格式。

她独立于任何编程语言、可读性高、易于生成和解析、体积轻量,这些优雅的特性,让JSON成为非常理想的数据交换的语言。

原文地址: http://www.hpboys.com/616.html

在使用Java操作JSON时,我们用到了Jackson框架。

Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。

Jackson相关

下载依赖库jar包

Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar

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

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

下面为基于Jackson的JsonUtils操作工具类:

Code   ViewCopyPrint

  1. /**
  2. * 操作Json数据工具类
  3. * @author daybreak
  4. * @since 2014-12-29
  5. */
  6. public class JSONUtils {
  7. private static Logger logger = Logger.getLogger(JSONUtils.class);
  8. /**
  9. * 将Json对象字符串转化为Map对象
  10. * @param jsonStr JSON字符串
  11. * @return 转换成功返回Map对象,失败则返回null
  12. */
  13. public static Map<String, String> JsonToMap(String jsonStr) {
  14. try {
  15. ObjectMapper objectMapper = new ObjectMapper();
  16. Map<String, String> params = objectMapper.readValue(jsonStr,Map.class);
  17. return params;
  18. } catch (Exception e) {
  19. logger.error("JsonToMap Error " + jsonStr, e);
  20. return null;
  21. }
  22. }
  23. /**
  24. * 将Json对象字符串转化为Map<String, Object>对象
  25. * @param jsonStr JSON字符串
  26. * @return 转换成功返回Map对象,失败则返回null
  27. */
  28. public static Map<String, Object> readJson2Map(String jsonStr) {
  29. try {
  30. ObjectMapper objectMapper = new ObjectMapper();
  31. Map<String, Object> params = objectMapper.readValue(jsonStr,Map.class);
  32. return params;
  33. } catch (Exception e) {
  34. logger.error("JsonToMap Error " + jsonStr, e);
  35. return null;
  36. }
  37. }
  38. /**
  39. * 将Json对象字符串转化为JavaBean类对象
  40. * @param jsonStr JSON字符串
  41. * @param clazz 类类型
  42. * @return 转换成功返回JavaBean类对象,失败则返回null
  43. */
  44. public static <T> T readJson2Bean(String jsonStr,Class<T> clazz) {
  45. try {
  46. ObjectMapper objectMapper = new ObjectMapper();
  47. T t = objectMapper.readValue(jsonStr,clazz);
  48. return t;
  49. } catch (Exception e) {
  50. logger.error("readJson2Bean Error " + jsonStr, e);
  51. return null;
  52. }
  53. }
  54. /**
  55. * 将Json对象字符串转化为List<Map>对象
  56. * @param jsonStr JSON字符串
  57. * @return 转换成功返回Map对象,失败则返回null
  58. */
  59. public static List<HashMap<String, Object>> JsonToMapList(String jsonStr) {
  60. try {
  61. ObjectMapper objectMapper = new ObjectMapper();
  62. List<HashMap<String, Object>> params = objectMapper.readValue(jsonStr,List.class);
  63. for (int i = 0; i < params.size(); i++) {
  64. Map<String, Object> map = params.get(i);
  65. Set<String> set = map.keySet();
  66. for (Iterator<String> it = set.iterator();it.hasNext();) {
  67. String key = it.next();
  68. }
  69. }
  70. return params;
  71. } catch (Exception e) {
  72. logger.error("JsonToMap Error " + jsonStr, e);
  73. return null;
  74. }
  75. }
  76. /**
  77. * 将传入能够整除2的数量的参数序列化为Json对象
  78. * @param result
  79. * @return
  80. */
  81. public static String WriteToJson(Object... paramObjs){
  82. try {
  83. if(paramObjs==null||paramObjs.length==0){
  84. logger.error("参数实例为空");
  85. }
  86. Map<String,Object> paramMap = new HashMap<String, Object>();
  87. for(int i=0;i<paramObjs.length;i+=2){
  88. paramMap.put((String) paramObjs[i], paramObjs[i+1]);
  89. }
  90. ObjectMapper objectMapper = new ObjectMapper();
  91. return objectMapper.writeValueAsString(paramMap);
  92. } catch (Exception e) {
  93. return "";
  94. }
  95. }
  96. /**
  97. * 将传入能够整除2的数量的参数序列化为Json对象,并进行UrlDecode操作
  98. * @param result
  99. * @return
  100. */
  101. public static Map<String, String> JsonToMapAndDecode(String result) {
  102. Map<String, String> params = JsonToMap(result);
  103. for (String key : params.keySet()) {
  104. params.put(key, HttpUtils.urlDecode(params.get(key), "UTF-8"));
  105. }
  106. return params;
  107. }
  108. public static String toJson(Object target){
  109. String result = null;
  110. try {
  111. ObjectMapper objectMapper = new ObjectMapper();
  112. result = objectMapper.writeValueAsString(target);
  113. } catch (Exception e) {
  114. logger.error("convert to Json Str Fail !");
  115. e.printStackTrace();
  116. }
  117. return result;
  118. }
  119. }

最后,Jackson对XML的支持

Code   ViewCopyPrint

  1. public void writeObject2Xml() {
  2. //stax2-api-3.0.2.jar
  3. System.out.println("XmlMapper");
  4. XmlMapper xml = new XmlMapper();
  5. try {
  6. //javaBean转换成xml
  7. //xml.writeValue(System.out, bean);
  8. StringWriter sw = new StringWriter();
  9. xml.writeValue(sw, bean);
  10. System.out.println(sw.toString());
  11. //List转换成xml
  12. List<AccountBean> list = new ArrayList<AccountBean>();
  13. list.add(bean);
  14. list.add(bean);
  15. System.out.println(xml.writeValueAsString(list));
  16. //Map转换xml文档
  17. Map<String, AccountBean> map = new HashMap<String, AccountBean>();
  18. map.put("A", bean);
  19. map.put("B", bean);
  20. System.out.println(xml.writeValueAsString(map));
  21. } catch (JsonGenerationException e) {
  22. e.printStackTrace();
  23. } catch (JsonMappingException e) {
  24. e.printStackTrace();
  25. } catch (IOException e) {
  26. e.printStackTrace();
  27. }
  28. }
时间: 2024-07-29 09:24:57

Java使用jackson操作Json格式数据的相关文章

JAVA操作JSON格式数据

由于近些日子公司在弄微信项目,而微信官方API所提供的接口当中,有些需要以POST方式进行请求,且数据传输格式要求为JSON格式数据,之前没怎么研究过,而且传递的数据格式相对也比较简单,所以直接都是采用的字符串拼接的方式进行组装的,之后再用String.format格式化一下就好了. //需要提交的json数据 String jsonData = "{\"openid\":\"%s\",\"to_groupid\":%d}";

fastJson java后台转换json格式数据

什么事JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等

Java入门系列:处理Json格式数据

本节主要讲解: 1)json格式数据处理方法 2)第三方工具包的使用方法 3)java集合数据类型 [项目任务] 编写一个程序,显示未来的天气信息. [知识点解析] 为了方便后面代码的分析,先需要掌握几个相关的知识. 1.什么是json格式数据 从结构上看,我们所见到的所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是

java将XML文档转换成json格式数据

功能 将xml文档转换成json格式数据 说明 依赖包: 1. jdom-2.0.2.jar : xml解析工具包; 2. fastjson-1.1.36.jar : 阿里巴巴研发的高性能json工具包 程序源码 package com.xxx.open.pay.util; import com.alibaba.fastjson.JSONObject; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdo

PHP、Java输出json格式数据

  PHP 输出json. $result = mysql_query($sql); //查询结果 $users=array(); $i=0; while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ $users[$i]=$row; $i++; } echo json_encode(array("result"=>"success",'data'=>$users));   防止输出json数据乱码,把数据转

java后台对json格式数据的解析

Json 和 Jsonlib 的使用 什么是 Json JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成.它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一个子集. JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族

Java Servlet生成Json格式数据

Java Servlet生成Json格式数据 分类: Web JAVA2013-09-17 14:38 4805人阅读 评论(1) 收藏 举报 在Servlet中覆写doGet方法,是用JSONStringer 类: [java] view plaincopyprint? protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 

Android之JSON格式数据解析

查看原文:http://blog.csdn.net/hantangsongming/article/details/42234293 JSON:JavaScript 对象表示法(JavaScript Object Notation).独立于语言和平台,比 XML 更小.更快,更易解析.如今JSON数据已经成为了互联网中大多数数据的传递方式,所以必须要熟练掌握. Android平台自带了JSON解析的相关API,可以将文件.输入流中的数据转化为JSON对象,然后从对象中获取JSON保存的数据内容.

Android读取JSON格式数据

Android读取JSON格式数据 1. 何为JSON? JSON,全称为JavaScript Object Notation,意为JavaScript对象表示法. JSON 是轻量级的文本数据交换格式 JSON 独立于语言 JSON 具有自我描写叙述性,更易理解 相比 XML 的不同之处: 没有结束标签 更短 读写的速度更快 使用数组 不使用保留字 JSON 使用 JavaScript 语法来描写叙述数据对象,可是 JSON 仍然独立于语言和平台.JSON 解析器和 JSON 库支持很多不同的