java中实体类和JSON对象之间相互转化

 更新时间:2015年05月11日 11:10:16   投稿:hebedich  
Java中关于Json格式转化Object,Map,Collection类型和String类型之间的转化在我们实际项目中应用的很是普遍和广泛。最近工作的过程中也是经常有,因此,自己封装了一个类分享给大家。

在需要用到JSON对象封装数据的时候,往往会写很多代码,也有很多复制粘贴,为了用POJO的思想我们可以装JSON转化为实体对象进行操作

package myUtil;
 
import java.io.IOException;
 
import myProject.Student;
import myProject.StudentList;
 
import org.codehaus.jackson.map.ObjectMapper;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/**
 * 实体类和JSON对象之间相互转化(依赖包jackson-all-1.7.6.jar、jsoup-1.5.2.jar)
 * @author wck
 *
 */
public class JSONUtil {
  /**
   * 将json转化为实体POJO
   * @param jsonStr
   * @param obj
   * @return
   */
  public static<T> Object JSONToObj(String jsonStr,Class<T> obj) {
    T t = null;
    try {
      ObjectMapper objectMapper = new ObjectMapper();
      t = objectMapper.readValue(jsonStr,
          obj);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return t;
  }
  /**
   * 将实体POJO转化为JSON
   * @param obj
   * @return
   * @throws JSONException
   * @throws IOException
   */
  public static<T> JSONObject objectToJson(T obj) throws JSONException, IOException {
    ObjectMapper mapper = new ObjectMapper(); 
    // Convert object to JSON string 
    String jsonStr = "";
    try {
       jsonStr = mapper.writeValueAsString(obj);
    } catch (IOException e) {
      throw e;
    }
    return new JSONObject(jsonStr);
  }
  public static void main(String[] args) throws JSONException, IOException {
    JSONObject obj = null;
    obj = new JSONObject();
    obj.put("name", "213");
    obj.put("age", 27);
    JSONArray array = new JSONArray();
    array.put(obj);
    obj = new JSONObject();
    obj.put("name", "214");
    obj.put("age", 28);
    array.put(obj);
    Student stu = (Student) JSONToObj(obj.toString(), Student.class);
    JSONObject objList = new JSONObject();
    objList.put("student", array);
    System.out.println("objList:"+objList);
    StudentList stuList = (StudentList) JSONToObj(objList.toString(), StudentList.class);
    System.out.println("student:"+stu);
    System.out.println("stuList:"+stuList);
    System.out.println("#####################################");
    JSONObject getObj = objectToJson(stu);
    System.out.println(getObj);
  }
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关文章

  • springboot+redis 实现分布式限流令牌桶的示例代码

    springboot+redis 实现分布式限流令牌桶的示例代码

    这篇文章主要介绍了springboot+redis 实现分布式限流令牌桶 ,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Java实现简单密码加密功能

    Java实现简单密码加密功能

    这篇文章主要为大家详细介绍了Java实现简单密码加密功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • Java 过滤器实现敏感词汇过滤功能

    Java 过滤器实现敏感词汇过滤功能

    通过使用 Java 过滤器,我们可以轻松地实现敏感词汇过滤的功能,以保护用户免受不良内容的侵害,让我们通过一个简单的示例来演示我们的敏感词汇过滤器是如何工作的,感兴趣的朋友一起看看吧
    2024-01-01
  • Java实现接口限流方案

    Java实现接口限流方案

    这篇文章主要为大家详细介绍了Java实现接口限流方案,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Redis分布式锁介绍与使用

    Redis分布式锁介绍与使用

    服务器集群项目中的锁是无法精准的锁住线程资源的,于是我们就是需要使用分布式锁,分布式锁该如何使用又有什么注意点呢?就让我们进入接下来的学习
    2022-09-09
  • Spring4.0 MVC请求json数据报406错误的解决方法

    Spring4.0 MVC请求json数据报406错误的解决方法

    这篇文章主要为大家详细介绍了Spring4.0 MVC请求json数据报406错误的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Java使用System.currentTimeMillis()方法计算程序运行时间的示例代码

    Java使用System.currentTimeMillis()方法计算程序运行时间的示例代码

    System.currentTimeMillis() 方法的返回类型为 long ,表示毫秒为单位的当前时间,文中通过示例代码介绍了计算 String 类型与 StringBuilder 类型拼接字符串的耗时情况,对Java计算程序运行时间相关知识感兴趣的朋友一起看看吧
    2022-03-03
  • Mybatis映射文件规则实例详解

    Mybatis映射文件规则实例详解

    在映射文件当中,mapper元素是映射文件的根元素,其他的标签都是它的子元素,下面这篇文章主要给大家介绍了关于Mybatis映射文件规则的相关资料,需要的朋友可以参考下
    2022-04-04
  • SpringBoot中项目结构的项目实践

    SpringBoot中项目结构的项目实践

    SpringBoot项目结构遵循Maven或Gradle的标准目录结构,融入了SpringBoot的特定约定,本文就来介绍一下SpringBoot中项目结构的项目,感兴趣的可以了解一下
    2025-03-03
  • idea maven项目无法识别jar包里的class解决方案

    idea maven项目无法识别jar包里的class解决方案

    这篇文章主要介绍了idea maven项目无法识别jar包里的class解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06

最新评论