java对象怎么与JSON互相转换
短信预约 -IT技能 免费直播动态提醒
这篇文章将为大家详细讲解有关java对象怎么与JSON互相转换,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
具体方法如下:
import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import org.json.JSONObject;public class JsonUtils { private static String beanToJson(Object bean) { StringBuilder json = new StringBuilder(); json.append("{"); PropertyDescriptor[] props = null; try { props = Introspector.getBeanInfo(bean.getClass(), Object.class) .getPropertyDescriptors(); } catch (IntrospectionException e) { } if (props != null) { for (int i = 0; i < props.length; i++) { try { String name = objToJson(props[i].getName()); String value = objToJson(props[i].getReadMethod() .invoke(bean)); json.append(name); json.append(":"); json.append(value); json.append(","); } catch (Exception e) { } } json.setCharAt(json.length() - 1, '}'); } else { json.append("}"); } return json.toString(); } private static String listToJson(List<?> list) { StringBuilder json = new StringBuilder(); json.append("["); if (list != null && list.size() > 0) { for (Object obj : list) { json.append(objToJson(obj)); json.append(","); } json.setCharAt(json.length() - 1, ']'); } else { json.append("]"); } return json.toString(); } private static String arrayToJson(Object[] array) { StringBuilder json = new StringBuilder(); json.append("["); if (array != null && array.length > 0) { for (Object obj : array) { json.append(objToJson(obj)); json.append(","); } json.setCharAt(json.length() - 1, ']'); } else { json.append("]"); } return json.toString(); } private static String mapToJson(Map<?, ?> map) { StringBuilder json = new StringBuilder(); json.append("{"); if (map != null && map.size() > 0) { for (Object key : map.keySet()) { json.append(objToJson(key)); json.append(":"); json.append(objToJson(map.get(key))); json.append(","); } json.setCharAt(json.length() - 1, '}'); } else { json.append("}"); } return json.toString(); } private static String setToJson(Set<?> set) { StringBuilder json = new StringBuilder(); json.append("["); if (set != null && set.size() > 0) { for (Object obj : set) { json.append(objToJson(obj)); json.append(","); } json.setCharAt(json.length() - 1, ']'); } else { json.append("]"); } return json.toString(); } private static String stringToJson(String s) { if (s == null) { return ""; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); switch (ch) { case '"': sb.append("\\\""); break; case '\\': sb.append("\\\\"); break; case '\b': sb.append("\\b"); break; case '\f': sb.append("\\f"); break; case '\n': sb.append("\\n"); break; case '\r': sb.append("\\r"); break; case '\t': sb.append("\\t"); break; case '/': sb.append("\\/"); break; default: if (ch >= '\u0000' && ch <= '\u001F') { String ss = Integer.toHexString(ch); sb.append("\\u"); for (int k = 0; k < 4 - ss.length(); k++) { sb.append('0'); } sb.append(ss.toUpperCase()); } else { sb.append(ch); } } } return sb.toString(); } public static String objToJson(Object obj) { StringBuilder json = new StringBuilder(); if (obj == null) { json.append("\"\""); } else if (obj instanceof Number) { Number num = (Number)obj; json.append(num.toString()); } else if (obj instanceof Boolean) { Boolean bl = (Boolean)obj; json.append(bl.toString()); } else if (obj instanceof String) { json.append("\"").append(stringToJson(obj.toString())).append("\""); } else if (obj instanceof Object[]) { json.append(arrayToJson((Object[]) obj)); } else if (obj instanceof List) { json.append(listToJson((List) obj)); } else if (obj instanceof Map) { json.append(mapToJson((Map) obj)); } else if (obj instanceof Set) { json.append(setToJson((Set) obj)); } else { json.append(beanToJson(obj)); } return json.toString(); } @SuppressWarnings("unchecked") public static Map<String, Object> json2Map(String jsonString) { Map<String, Object> map = new HashMap<String, Object>(); try { if(null != jsonString && !"".equals(jsonString)){ JSONObject jsonObject = new JSONObject(jsonString); Iterator keyIter = jsonObject.keys(); String key = ""; Object value = null; while (keyIter.hasNext()) { key = (String) keyIter.next(); value = jsonObject.get(key); map.put(key, value); } } } catch (Exception e) { e.printStackTrace(); } return map; } //测试方法 public static void main(String[] args) { Map<String,Object> params = new HashMap<String,Object>(); params.put("callId123", Integer.valueOf(1000)); Map retMap = new HashMap(); retMap.put("params", params); retMap.put("result", true); List ls = new ArrayList(); ls.add(new HashMap()); ls.add("hello world!!"); ls.add(new String[4]); retMap.put("list", ls); String[] strArray = new String[10]; strArray[1]="first"; strArray[2]="2"; strArray[3]="3"; System.out.println("Boolean:"+JsonUtils.objToJson(true)); System.out.println("Number:"+JsonUtils.objToJson(23.3)); System.out.println("String:"+JsonUtils.objToJson("sdhfsjdgksdlkjfk\"sd,!#%$^&*#(*@&*%&*$fsdfsdfsdf")); System.out.println("Map :"+JsonUtils.objToJson(retMap)); System.out.println("List:"+JsonUtils.objToJson(ls)); System.out.println("Array:"+JsonUtils.objToJson(strArray)); String json = JsonUtils.objToJson(retMap); Map r = JsonUtils.json2Map(json); System.out.println(r.get("callId123")); }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
java对象怎么与JSON互相转换
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
java对象怎么与JSON互相转换
这篇文章将为大家详细讲解有关java对象怎么与JSON互相转换,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体方法如下:import java.beans.IntrospectionExc
2023-05-31
2023-10-23
java对象与json对象之间互相转换实现方法示例
本文实例讲述了java对象与json对象之间互相转换实现方法。分享给大家供大家参考,具体如下:import java.util.ArrayList;import java.util.Collection;import java.util.I
2023-05-30
2023-10-03
2024-04-02
Java中BeanMap怎么实现对象与Map相互转换
这篇文章主要介绍“Java中BeanMap怎么实现对象与Map相互转换”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java中BeanMap怎么实现对象与Map相互转换”文章能帮助大家解决问题。ja
2023-06-29
怎么将JS对象与jQuery对象进行相互转换
这篇文章主要介绍了怎么将JS对象与jQuery对象进行相互转换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.jQuery对象转换为JS原生对象
2023-06-14
2024-04-02
2023-09-05
json对象和formData相互转换的方式详解
我们有两种常见的传参方式:JSON对象格式和formData格式,但是一些场景是需要我们对这两种数据格式进行转换的,这篇文章主要介绍了json对象和formData相互转换的方式详解,需要的朋友可以参考下
2023-02-14
2023-09-10
2024-04-02
2023-08-31
2023-09-06
2024-04-02
2024-04-02
Java中Json与List、Map、entity怎么互相转化
本篇内容介绍了“Java中Json与List、Map、entity怎么互相转化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一步:导入依赖
2023-07-02
2024-04-02
2024-04-02
Python字典格式怎么与JSON格式相互转换
本篇内容介绍了“Python字典格式怎么与JSON格式的相互转换”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python中可以方便的通过J
2023-06-02
编程热搜
Python 学习之路 - Python
一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-chatgpt的中文全称是什么
chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列C/C++可变参数的使用
可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃Python 3 教程
Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 PythonPython pip包管理
一、前言 在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install 和 pip , 目前官方推荐使用 pip。
编程资源站
- 资料下载
- 历年试题