Java实现的JSONUtil工具类与用法示例

 更新时间:2018年07月04日 14:38:59   作者:黄宝康  
这篇文章主要介绍了Java实现的JSONUtil工具类与用法,结合实例形式分析了Java操作json格式数据工具类JSONUtil的定义与简单使用技巧,需要的朋友可以参考下

本文实例讲述了Java实现的JSONUtil工具类与用法。分享给大家供大家参考,具体如下:

import java.util.HashMap;
import java.util.Map;
import com.alibaba.druid.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class JSONUtils {
  /**
   * Bean对象转JSON
   *
   * @param object
   * @param dataFormatString
   * @return
   */
  public static String beanToJson(Object object, String dataFormatString) {
    if (object != null) {
      if (StringUtils.isEmpty(dataFormatString)) {
        return JSONObject.toJSONString(object);
      }
      return JSON.toJSONStringWithDateFormat(object, dataFormatString);
    } else {
      return null;
    }
  }
  /**
   * Bean对象转JSON
   *
   * @param object
   * @return
   */
  public static String beanToJson(Object object) {
    if (object != null) {
      return JSON.toJSONString(object);
    } else {
      return null;
    }
  }
  /**
   * String转JSON字符串
   *
   * @param key
   * @param value
   * @return
   */
  public static String stringToJsonByFastjson(String key, String value) {
    if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {
      return null;
    }
    Map<String, String> map = new HashMap<String, String>();
    map.put(key, value);
    return beanToJson(map, null);
  }
  /**
   * 将json字符串转换成对象
   *
   * @param json
   * @param clazz
   * @return
   */
  public static Object jsonToBean(String json, Object clazz) {
    if (StringUtils.isEmpty(json) || clazz == null) {
      return null;
    }
    return JSON.parseObject(json, clazz.getClass());
  }
  /**
   * json字符串转map
   *
   * @param json
   * @return
   */
  @SuppressWarnings("unchecked")
  public static Map<String, Object> jsonToMap(String json) {
    if (StringUtils.isEmpty(json)) {
      return null;
    }
    return JSON.parseObject(json, Map.class);
  }
}

测试:

JSON字符串转map

public static void main(String[] args) {
    String jsonStr = "{'userName':'huangbaokang','password':'123456'}";
    Map<String, Object> map = JSONUtils.jsonToMap(jsonStr);
    System.out.println(map.get("userName"));
}

输出:

huangbaokang

JSON字符串转对象:

新建User类

public class User {
  private String userName;
  private String password;
  public String getUserName() {
    return userName;
  }
  public void setUserName(String userName) {
    this.userName = userName;
  }
  public String getPassword() {
    return password;
  }
  public void setPassword(String password) {
    this.password = password;
  }
}
public static void main(String[] args) {
    String jsonStr = "{'userName':'huangbaokang','password':'123456'}";
    User user = (User) JSONUtils.jsonToBean(jsonStr, new User());
    System.out.println("用户名="+user.getUserName()+" 密码="+user.getPassword());
}

测试输出:

输出用户名=huangbaokang 密码=123456

对象转JSON

public static void main(String[] args) {
    User user = new User();
    user.setUserName("huangbaokang");
    user.setPassword("123456");
    String result = JSONUtils.beanToJson(user);
    System.out.println(result);
}

测试输出:

{"password":"123456","userName":"huangbaokang"}

在这里工具类应用的jar为阿里巴巴的fastjson,在lib中加入相关jar。

PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:

在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

在线json压缩/转义工具:
http://tools.jb51.net/code/json_yasuo_trans

更多关于java相关内容感兴趣的读者可查看本站专题:《Java操作json格式数据技巧总结》、《Java数组操作技巧总结》、《Java字符与字符串操作技巧总结》、《Java数学运算技巧总结》、《Java数据结构与算法教程》及《Java操作DOM节点技巧总结

希望本文所述对大家java程序设计有所帮助。

相关文章

  • Mybatis插入时返回自增主键方式(selectKey和useGeneratedKeys)

    Mybatis插入时返回自增主键方式(selectKey和useGeneratedKeys)

    这篇文章主要介绍了Mybatis插入时返回自增主键方式(selectKey和useGeneratedKeys),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • HelloSpringMVC配置版实现步骤解析

    HelloSpringMVC配置版实现步骤解析

    这篇文章主要介绍了HelloSpringMVC配置版实现步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • JDBC连接数据库的方法汇总

    JDBC连接数据库的方法汇总

    这篇文章主要介绍了JDBC连接数据库的方法,结合实例形式总结分析了JDBC连接各种常见数据库的相关实现技巧,需要的朋友可以参考下
    2016-08-08
  • 解决mybatisPlus 中的field-strategy配置失效问题

    解决mybatisPlus 中的field-strategy配置失效问题

    这篇文章主要介绍了解决mybatisPlus 中的field-strategy配置失效问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java令牌Token登录与退出的实现

    Java令牌Token登录与退出的实现

    这篇文章主要介绍了Java令牌Token登录与退出的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Java JVM虚拟机调优详解

    Java JVM虚拟机调优详解

    JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,本文主要介绍了jvm调优,感兴趣的小伙伴们可以参考一下<BR>
    2022-07-07
  • Java中使用LocalDate根据日期来计算年龄的实现方法

    Java中使用LocalDate根据日期来计算年龄的实现方法

    这篇文章主要介绍了Java中使用LocalDate根据日期来计算年龄的实现方法,需要的朋友可以参考下
    2018-01-01
  • 搞懂JAVAObject中的hashCode()

    搞懂JAVAObject中的hashCode()

    今天小编就为大家分享一篇关于关于Object中equals方法和hashCode方法判断的分析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2021-08-08
  • SpringSecurityOAuth2 如何自定义token信息

    SpringSecurityOAuth2 如何自定义token信息

    这篇文章主要介绍了SpringSecurityOAuth2 自定义token信息的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java中BufferedReader类获取输入输入字符串实例

    Java中BufferedReader类获取输入输入字符串实例

    这篇文章主要介绍了Java中BufferedReader类获取输入输入字符串实例,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02

最新评论