- 浏览: 583887 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (174)
- JBPM (3)
- WWF (0)
- JavaScript (11)
- J2EE (40)
- OperationSystem (11)
- 数据库 (12)
- CSS (1)
- Ajax (2)
- J2SE (30)
- Tools (10)
- 服务器中间件 (3)
- 异常 (0)
- Flex (5)
- jQuery (11)
- html (9)
- Ejb (1)
- HTML5 Shiv–让该死的IE系列支持HTML5吧 (1)
- Spring (9)
- Quartz (3)
- log4j (1)
- maven (1)
- cpdetector (1)
- JSON (1)
- log4jdbc (1)
- asm (8)
- FusionCharts (1)
- jqplot (1)
- highcharts (1)
- excanvas (1)
- html5 (1)
- jpcap介绍 (1)
- weblogic (3)
- URLURLClassLoader (0)
- URLClassLoader (1)
- ant (2)
- ivy (2)
- nexus (1)
- IT (0)
- LoadRunner (1)
- SCSS (1)
- ruby (1)
- webstorm (1)
- typescript (1)
- Jboss7 (1)
- wildfly (1)
- oracle (5)
- esb (0)
- dubbo (2)
- zookeeper (3)
- eclipse (1)
- Android (2)
- Studio (1)
- Google (1)
- 微信 (1)
- 企业号 (1)
- Linux (13)
- Oracle12c (1)
- Hadoop (1)
- InletexEMC (1)
- Windows (1)
- Netty (3)
- Marshalling (2)
- Protobuf (1)
- gcc (1)
- Git (1)
- GitLab (1)
- shell (2)
- java (3)
- Spring4 (1)
- hibernate4 (1)
- postgresql (1)
- ApacheServer (2)
- Tomcat (2)
- ApacheHttpServer (2)
- realvnc (1)
- redhat (7)
- vncviewer (1)
- LVS (4)
- LVS-DR (1)
- RedHat6.5 (5)
- LVS-NAT (1)
- LVS-IPTUNNEL (2)
- LVS-TUN (1)
- keepalived (2)
- yum (1)
- iso (1)
- VMware (1)
- redhat5 (1)
- ha (1)
- nginx (2)
- proguard (1)
- Mat (1)
- DTFJ (1)
- axis2 (1)
- web service (1)
- centos (1)
- random (1)
- urandom (1)
- apache (1)
- IBM (1)
- cve (1)
- 漏洞 (1)
- JDBC (1)
- DataSource (1)
- jdk (1)
- tuxedo (2)
- wtc (1)
最新评论
-
skying007:
好资料,谢谢分享给啊
FusionCharts在服务器端导出图片(J2EE版) -
cgnnzg:
大神好 可以发一份源码给我学习么 多谢了 978241085 ...
springmvc+dubbo+zookeeper -
jifengjianhao:
求源码:854606899@qq.com
springmvc+dubbo+zookeeper -
wdloyeu:
shihuan8@163.com邮箱网盘在哪,没找到。能给份源 ...
Java Socket长连接示例代码 -
huangshangyuanji:
求代码:45613032@qq.com
springmvc+dubbo+zookeeper
import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import java.math.BigDecimal; import org.apache.commons.lang.StringUtils; //import org.json.JSONArray; //import org.json.JSONObject; import net.sf.json.JSONObject; import net.sf.json.JSONSerializer; import net.sf.json.JSONArray; import com.zznode.inms.broadbank.admin.dto.TbPingtaskResultDto; public class ListDtoToJson { /**Java反射函数机制 List转换Json,返回[{"name":"value"},{"shihuan":"yushibo"},{...}]格式的String字符串*/ public static String getJsonData(List list) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException { // String jsonTemp = "{results:["; String jsonTemp = "["; for(int i=0; i<list.size(); i++){ jsonTemp = jsonTemp+"{"; Field[] field = list.get(i).getClass().getDeclaredFields(); //获取参数数组 for (int j=0; j<field.length; j++) { Method metd = list.get(i).getClass().getMethod("get"+field[j].getName().substring(0,1).toUpperCase()+field[j].getName().substring(1),null); //根据字段名找到对应的get方法,null表示查找的方法无参数 // jsonTemp = jsonTemp+field[j].getName()+":'"+metd.invoke(list.get(i),null)+"'"; //调用找到的函数 jsonTemp = jsonTemp+"\""+field[j].getName()+"\":\""+metd.invoke(list.get(i),null)+"\""; //调用找到的函数 if(j != field.length-1){ jsonTemp = jsonTemp+","; } } if(i != list.size()-1){ jsonTemp = jsonTemp+"},"; }else{ jsonTemp = jsonTemp+"}"; } } // jsonTemp = jsonTemp+"]}"; jsonTemp = jsonTemp+"]"; return jsonTemp; } /**Java反射函数机制 List转换Json,返回[{"name":"value"};{"shihuan":"yushibo"};{...}]格式的String字符串*/ public static String getJsonDataBaseList(List list) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException { // String jsonTemp = "{results:["; String jsonTemp = ""; for(int i=0; i<list.size(); i++){ jsonTemp = jsonTemp+"{"; Field[] field = list.get(i).getClass().getDeclaredFields(); //获取参数数组 for (int j=0; j<field.length; j++) { Method metd = list.get(i).getClass().getMethod("get"+field[j].getName().substring(0,1).toUpperCase()+field[j].getName().substring(1),null); //根据字段名找到对应的get方法,null表示查找的方法无参数 // jsonTemp = jsonTemp+field[j].getName()+":'"+metd.invoke(list.get(i),null)+"'"; //调用找到的函数 // jsonTemp = jsonTemp+"\""+field[j].getName()+"\":\""+metd.invoke(list.get(i),null)+"\""; //调用找到的函数 if("java.math.BigDecimal".equals(field[j].getType().getName()) && metd.invoke(list.get(i), null).toString().indexOf(".") != -1){ double doubleTypeData = getDoubleTypeData(metd.invoke(list.get(i), null).toString()); jsonTemp = jsonTemp+field[j].getName()+":"+doubleTypeData; //调用找到的函数 }else if("java.lang.String".equals(field[j].getType().getName())){ if(!"".equals(nullToString(metd.invoke(list.get(i), null)))) jsonTemp = jsonTemp+field[j].getName()+":'"+metd.invoke(list.get(i), null)+"'"; //调用找到的函数 }else{ if(!"".equals(nullToString(metd.invoke(list.get(i), null)))) jsonTemp = jsonTemp+field[j].getName()+":"+metd.invoke(list.get(i), null); //调用找到的函数 } if(j != field.length-1){ if(!"".equals(nullToString(metd.invoke(list.get(i), null)))) jsonTemp = jsonTemp+","; } } if(i != list.size()-1){ jsonTemp = jsonTemp+"};"; }else{ jsonTemp = jsonTemp+"}"; } } // jsonTemp = jsonTemp+"]}"; jsonTemp = jsonTemp+""; return jsonTemp; } /**将Json格式的String字符串拼装成List对象 * @throws InvocationTargetException * @throws NoSuchMethodException * @throws IllegalAccessException */ public static List getListJson(List list) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException { List jsonlist = new ArrayList(); String jsonStrBaseList = getJsonDataBaseList(list); String[] jsonStr = jsonStrBaseList.split(";"); int len = jsonStr.length; for(int i=0; i<len; i++){ jsonlist.add((Object)jsonStr[i]); } return jsonlist; } public static double getDoubleTypeData(String param) { DecimalFormat df = new DecimalFormat("#.00"); //.后面0的个数为小数位数 BigDecimal bdStr = new BigDecimal(param); bdStr = bdStr.setScale(2, BigDecimal.ROUND_UP); double bdStrz = bdStr.doubleValue(); String dfStr = df.format(bdStrz); return bdStrz; } public static String nullToString(Object val) { if (val == null) { val = ""; } return val.toString(); }
- ListDtoToJson.rar (2.1 KB)
- 下载次数: 42
- json-1.0.1.jar (85.6 KB)
- 下载次数: 23
- json-lib-2.3-jdk15.jar (148.3 KB)
- 下载次数: 25
发表评论
-
JDK中的随机数机制探究
2017-05-31 21:25 1959今天有同事问起关于JDK1.8中默认是random问题 ... -
Netty5 AIO
2015-11-25 21:18 1694工程结构图: TimeServer.java文件内容如下: ... -
JDK1.7 AIO
2015-11-24 22:32 1065工程结构图: Helper.java文件内容如下: p ... -
java JAVA_OPTS javaagent
2015-11-23 15:48 1526附件里java JAVA_OPTS -javaagent的程序 ... -
dubbo源代码调试
2015-09-24 17:06 4217今天同事要调试zookeeper+dubbo源代码,所以做了以 ... -
any+ivy的使用
2014-11-29 16:25 2113javapro-用ivy编译版本.rar文件时示例代码。 i ... -
URLClassLoader初体验
2014-11-26 14:56 2210使用概要: File file = ... -
将输出流OutputStream转化为输入流InputStream的方法
2014-07-19 22:27 27687将输出流OutputStream转化为输入流InputSt ... -
JVM启动参数大全
2014-06-11 17:19 1008http://www.blogjava.net/midstr/ ... -
Java实现aop案例
2014-04-27 11:33 1364MyPersonService.java代码如下: pac ... -
Java Socket长连接示例代码
2014-04-07 13:42 21791SocketListenerPusher.java代码如下: ... -
Java多线程文档
2013-10-06 10:56 1237附件里是Java多线程的pdf文档,写的比较好,可参考。 ... -
利用jackson包进行json字符串与pojo类之间的转换源代码
2012-10-05 19:35 1977附件里是利用jackson包进行json字符串与pojo类之间 ... -
Java Swing开发的文件内容加密
2012-09-02 14:52 1231主要是javax.swing.JFrame和java.awt. ... -
mysql和Oracle在对clob和blob字段的处理
2012-08-25 18:50 30931一、MySQL与Oracle数据库如何处理Clob,Bl ... -
用JAVA Bean 反射得到set,get方法
2011-10-17 19:39 9104/** * java反射bean的get方法 ... -
Oracle自带连接池应用
2011-08-31 13:27 2070依赖ojdbc14.jar包 OraclePooled.ja ... -
利用commons-digester3-30.jar解析xml文件
2011-08-28 14:05 3981此方式解析需要commons-beanutils-1.8.3. ... -
非阻塞的HTTP服务器
2011-08-27 21:23 1354附件里为非阻塞HTTP服务器的相关Java代码。 HttpS ... -
Java.nio
2011-08-27 21:17 1419附件里为阻塞模式、非阻塞模式、阻塞和非阻塞的混合模式代码。 ...
相关推荐
总结来说,Java反射机制是Java语言的一个重要特性,它使得程序能够在运行时动态地获取类的信息并进行操作,提高了代码的通用性和适应性。在实际开发中,反射机制常用于框架设计、插件系统、数据持久化等领域,但同时...
传统的做法是利用Java的反射API(Reflection API)来实现这种转换。反射允许我们在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。以下是一个简化的转换过程: 1. **解析JSON...
JSON Lib提供了将Java集合(如List、Map)、JavaBeans、XML等转换为JSON对象的方法,同时也能够将JSON对象解析回这些数据结构。这个库是JSON-JAR包的核心,它的功能涵盖了JSON的序列化和反序列化,使得在Java应用中...
这些依赖包可能包括了对XML、日期时间处理、反射机制等支持,因为JSON-Lib在进行对象与JSON之间的转换时,可能会用到这些功能。 在Java开发中,使用Maven或Gradle等构建工具时,可以直接将JSON-Lib作为一个依赖项...
这个jar包包含了所有必要的类和方法,使得在Java应用中解析、生成、操作和转换JSON数据变得非常简单。 `json_lib`库的主要特点包括: 1. **高性能**:`json_lib`设计时考虑了性能,它能够快速地将Java对象转换为...
可以通过反射或其他JSON库的方法将JavaBean转换为JSON,以便进行网络传输。前端同样通过`jQuery.parseJSON`解析并访问数据。 总结一下,JSON是Web服务和客户端之间交换数据的常见格式,它的简单性和JavaScript的...
Gson通过反射机制来将Java对象映射到JSON表示,反之亦然。当我们有一个实体类,Gson会尝试将JSON字符串中的键与实体类的属性对应。如果JSON中的键是字符串类型,且与实体类的字段名匹配,那么Gson就能正确地将数据...
本文详细讲解了如何使用Ajax、JSON和Struts2框架实现从后端获取List集合数据并展示在前端页面的实例。以下知识点是基于本文内容展开的详细解读。 知识点一:Ajax技术 Ajax(Asynchronous JavaScript and XML,异步...
2. **集合框架**:Java集合框架是`java.util`包的核心部分,包括List(如ArrayList和LinkedList)、Set(如HashSet和TreeSet)、Map(如HashMap和TreeMap)等接口和实现类。这些接口和类提供了数据存储和操作的各种...
11. **反射机制**:通过反射可以动态访问类的信息,创建对象,调用方法,改变字段值。 12. **集合框架**:深入理解List、Set、Queue等接口,以及它们的实现类,例如ArrayList、LinkedList、TreeSet、PriorityQueue...
77.JSON处理:示例可能涵盖使用Gson或Jackson库将Java对象转换为JSON字符串,以及反序列化回Java对象。 78.XML处理:DOM、SAX和StaX API可用于解析和生成XML文档,示例可能涵盖这些API的使用。 79.图形绘制:Java...
5. **反射**:java.lang.reflect包提供了反射机制,允许程序在运行时检查和操作类、接口、方法和构造器等,增强了代码的灵活性和动态性。 6. **Apache Commons**:这是一个由Apache软件基金会开发的开源库,包含了...
前者基于Java的反射机制,后者则基于字节码增强技术。 #### Spring2.x Spring 2.x版本引入了许多新特性,比如改进的AOP支持、增强的声明式事务管理等。 #### Annotation(Spring高版本) 随着Spring的发展,注解...
2. **面向对象**:Java是一种面向对象的语言,实例中可能会讲解类的创建、对象的实例化、封装、继承、多态等概念,以及如何通过构造函数、方法重载和覆盖来实现对象的生命周期管理。 3. **异常处理**:Java中的try-...
这里使用了`JSONObject`类来进行序列化和反序列化操作,其中`JSONObject.toJSONString(paramMap)`将Map转换为JSON字符串,然后`JSONObject.parseObject(jsonString, cls)`将JSON字符串转换为指定类型的Java对象。...
11. **反射机制**:Java的反射API可以动态获取类的信息并操作类的对象,这对于理解和实现插件化或元编程很有帮助。 12. **泛型**:泛型提供了一种在编译时检查类型安全并减少类型转换错误的方式,同时提高代码的...
可以通过 JackSon 框架把 Java 对象直接转换成 js 可识别的 json 对象。 8. SpringMvc 的工作流程图? SpringMvc 的工作流程图可以分为四个步骤:客户端请求、SpringMvc 处理、业务逻辑处理、视图渲染。 9. ...
Java反射机制允许程序在运行时访问和操作类、方法、接口等。通过反射,可以检查、修改和创建类的行为。常见的反射类包括Class、Field、Method、Constructor等。 ### 对象拷贝 对象拷贝涉及浅拷贝和深拷贝的概念。...
4. **集合框架**:List、Set、Map接口及其实现类的使用,例如ArrayList、LinkedList、HashSet、HashMap等,这些在实际开发中频繁使用,实例将详细解释它们的工作原理和应用场景。 5. **IO流**:文件操作、网络通信...