Java实现的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程序设计有所帮助。
阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机