Json字符串与Object、List、Map的互转工具类

 更新时间:2018年12月10日 14:18:07   作者:执笔记忆的空白  
今天小编就为大家分享一篇关于Json字符串与Object、List、Map的互转工具类,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
package com.cq2022.zago.base.util;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.util.List;
import java.util.Map;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import com.alibaba.fastjson.JSONArray;
/**
 * Json工具类,实现JSON与Java Bean的互相转换
 */
public class JsonUtils {
 private static ObjectMapper objectMapper = new ObjectMapper();
 private static JsonFactory jsonFactory = new JsonFactory();
 static {
 objectMapper.configure(SerializationConfig.Feature.WRITE_NULL_MAP_VALUES, false);
 objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
 }
 /**
 * 泛型返回,json字符串转对象
 * @param jsonAsString
 * @param pojoClass
 * @return
 * @throws JsonMappingException
 * @throws JsonParseException
 * @throws IOException
 */
 public static <T> T fromJson(String jsonAsString, Class<T> pojoClass) throws JsonMappingException,
  JsonParseException, IOException {
 return objectMapper.readValue(jsonAsString, pojoClass);
 }
 public static <T> T fromJson(FileReader fr, Class<T> pojoClass) throws JsonParseException, IOException {
 return objectMapper.readValue(fr, pojoClass);
 }
 /**
 * Object对象转json
 * @param pojo
 * @return
 * @throws JsonMappingException
 * @throws JsonGenerationException
 * @throws IOException
 */
 public static String toJson(Object pojo) throws JsonMappingException, JsonGenerationException, IOException {
 return toJson(pojo, false);
 }
 public static String toJson(Object pojo, boolean prettyPrint) throws JsonMappingException, JsonGenerationException,
  IOException {
 StringWriter sw = new StringWriter();
 JsonGenerator jg = jsonFactory.createJsonGenerator(sw);
 if (prettyPrint) {
  jg.useDefaultPrettyPrinter();
 }
 objectMapper.writeValue(jg, pojo);
 return sw.toString();
 }
 public static void toJson(Object pojo, FileWriter fw, boolean prettyPrint) throws JsonMappingException,
  JsonGenerationException, IOException {
 JsonGenerator jg = jsonFactory.createJsonGenerator(fw);
 if (prettyPrint) {
  jg.useDefaultPrettyPrinter();
 }
 objectMapper.writeValue(jg, pojo);
 }
 /**
 * json字符串转Map
 * @param jsonStr
 * @return
 * @throws IOException
 */
 public static Map<String, Object> parseMap(String jsonStr) throws IOException {
 Map<String, Object> map = objectMapper.readValue(jsonStr, Map.class);
 return map;
 }
 public static JsonNode parse(String jsonStr) throws IOException {
 JsonNode node = null;
 node = objectMapper.readTree(jsonStr);
 return node;
 }
 public static ObjectMapper getObjectMapper() {
 return objectMapper;
 }
 /**
 * json字符串转 List对象
 * @param str json字符串
 * @param clazz 转换的类型
 * @return
 */
 public static <T> List<T> fromListJson(String str,Class<T> clazz){
 return JSONArray.parseArray(str, clazz);
 }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • JavaWeb实现RSA+AES混合加密

    JavaWeb实现RSA+AES混合加密

    RSA+AES的混合加密时,AES用于给传输的数据加密,然后通过RSA给AES的秘钥加密,本文就来详细的介绍一下如何实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • java的Map集合中按value值进行排序输出的实例代码

    java的Map集合中按value值进行排序输出的实例代码

    下面小编就为大家带来一篇java的Map集合中按value值进行排序输出的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • java Spring松耦合高效应用简单实例分析

    java Spring松耦合高效应用简单实例分析

    在Java项目,庞大的对象依赖关系将一直紧密耦合引起对象难以管理或修改。在这种情况下,可以使用Spring框架作为一个核心模块轻松高效地管理所有的对象依赖。本文章向大家介绍Spring松耦合的实例,需要的朋友可以参考一下。
    2016-12-12
  • java String源码和String常量池的全面解析

    java String源码和String常量池的全面解析

    下面小编就为大家分享一篇java String源码和String常量池的全面解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • SpringMVC之@requestBody的作用及说明

    SpringMVC之@requestBody的作用及说明

    这篇文章主要介绍了SpringMVC之@requestBody的作用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 详解Java LinkedHashMap与HashMap的使用

    详解Java LinkedHashMap与HashMap的使用

    这篇文章主要通过几个示例为大家详细介绍了Java中LinkedHashMap与HashMap的常见使用和概述,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-10-10
  • Spring操作JdbcTemplate数据库的方法学习

    Spring操作JdbcTemplate数据库的方法学习

    这篇文章主要为大家介绍了Spring操作JdbcTemplate数据库方法学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Java 中的 this 和 super 区别

    Java 中的 this 和 super 区别

    这篇文章主要介绍了Javathis与super本质区别,this与super是类实例化时通往Object类通道的打通者;this和super在程序中由于其经常被隐式的使用而被我们忽略,但是理解其作用和使用规范肯定是必须的。接下来将详述this与super的作用和区别,需要的朋友可以参考一下
    2021-11-11
  • SpringBoot如何优雅的处理全局异常

    SpringBoot如何优雅的处理全局异常

    这篇文章主要给大家介绍了关于SpringBoot如何优雅的处理全局异常的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用SpringBoot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Java通过JavaMail发送邮件功能

    Java通过JavaMail发送邮件功能

    这篇文章主要为大家详细介绍了Java通过JavaMail发送邮件功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08

最新评论