`
dengminghua1016
  • 浏览: 129744 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于java反射机制实现javabean转json字符串

    博客分类:
  • java
阅读更多
package com.ObjectToJson;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;

public class ObjectToJson {


public  static String ObjListToJson(ArrayList<?> list){
StringBuilder build=new StringBuilder();
//迭代器
Iterator<?> iterator=list.iterator();
build.append("[");
String separate="";
while(iterator.hasNext()){
build.append(separate);
//object转json字符串
String str=ObjToJson(iterator.next());
build.append(str);
separate=",";
}
build.append("]");
return build.toString();
}

@SuppressWarnings("unchecked")
public  static String ObjToJson(Object obj){
StringBuilder build=new StringBuilder();
build.append("{");
@SuppressWarnings("rawtypes")
Class cla=null;
try {
//反射加载类
cla=Class.forName(obj.getClass().getName());
} catch (ClassNotFoundException e) {
System.out.println(obj.getClass().toString().concat(" 未找到这个类"));
e.printStackTrace();
return null;
}

StringBuffer methodname=new StringBuffer();
//获取java类的变量
Field[] fields=cla.getDeclaredFields();
String separate="";
for(Field temp:fields){
build.append(separate);
build.append("\"");
build.append(temp.getName());
build.append("\":");

methodname.append("get");
methodname.append(temp.getName().substring(0,1).toUpperCase());
methodname.append(temp.getName().substring(1));

build.append("\"");
Method method=null;
try {
//获取java的get方法
method=cla.getMethod(methodname.toString());
} catch (NoSuchMethodException | SecurityException e) {
methodname.setLength(0);
e.printStackTrace();
}

try {
//执行get方法,获取变量参数的直。
build.append(method.invoke(obj));
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}

build.append("\"");
methodname.setLength(0);
separate=",";
}

build.append("}");
return build.toString();
}
}
分享到:
评论

相关推荐

    java反射实现javabean转json实例代码.docx

    本文将详细介绍如何利用Java反射机制来实现JavaBean对象到JSON字符串的转换,并提供具体的示例代码。 #### 二、Java反射机制简介 Java反射机制允许程序在运行时访问类的信息,包括字段、构造函数以及方法等。通过...

    java反射实现Object转json

    对于"java反射实现Object转json"这个主题,我们将深入探讨如何使用反射机制将Java对象转换为JSON格式的数据。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    java反射实现javabean转json实例代码

    文档中提到的实例代码,使用Java反射机制实现将Java Bean对象转换成JSON字符串。具体步骤如下: - 利用Class类的forName方法,通过Java Bean对象的类型信息加载对应的Class对象。 - 遍历Class对象中声明的字段...

    提供将对象转换成JSON字符串的方法 (2).pdf

    标题中的“提供将对象转换成JSON字符串的方法 (2).pdf”指的是一个关于如何在Java编程中将对象转换为JSON格式的文档。描述中提到的是这个文档的更新日期和作者信息。标签“互联网”可能暗示了这个方法在Web开发或者...

    各种对象转成JSON字符串 (2).docx

    这些转换方法是通过自定义的`JSONUtil`类实现的,它没有依赖特定的JSON库,而是手动实现了对象到JSON字符串的转换。在实际项目中,开发者通常会选择已有的成熟库,如Jackson、Gson或FastJSON,它们提供了更强大、更...

    BeanToJsonSchema:Java bean转换为Json Schema

    例如,你可以创建一个Java Bean实例,然后调用相应的转换方法,得到对应的JSON Schema字符串,再将这个字符串写入到文件中。这样,当你需要验证基于这个Java Bean的JSON数据时,就可以利用生成的JSON Schema来进行...

    json自动生成javabean的工具jar

    描述中提到的"json自动生成javabean的工具jar"进一步强调了这个工具的功能,即用户只需提供JSON字符串或JSON文件,该工具就可以自动生成相应的JavaBean代码,开发者无需手动编写JavaBean的属性和getter/setter方法。...

    javaBean.rar

    综上所述,"javaBean.rar"中的工具可能是为了简化开发过程中JSON字符串与Java实体类之间的转换,通过反射技术实现了这一自动化过程,降低了代码的复杂性和冗余,提高了开发效率。同时,JavaUtil.java提供的通用方法...

    java处理json格式需要的包

    例如,可以创建一个JSON对象,将其序列化为字符串,或者将JSON字符串反序列化为Java对象。通过这样的方式,Java开发者能够轻松地处理JSON数据,从而实现与Web服务、数据库或其他系统的数据交换。

    json转换JavaBean

    手动转换是通过编程的方式,逐个解析JSON字符串,然后设置到JavaBean的相应字段。这需要编写大量的解析代码,效率较低且容易出错。例如,你可以使用`org.json`库的`JSONObject`和`JSONArray`类来解析JSON,并通过...

    Java中 json处理的所用到的所有Jar包

    有了这些库的支持,Java开发者可以更高效地处理JSON数据,无论是解析JSON字符串,还是将Java对象转换为JSON格式,都能更加便捷。同时,这些库还提供了许多其他辅助功能,增强了Java应用程序的功能和灵活性。在实际...

    java解析json的jar包

    它还提供了反向转换,即从JSON字符串解析出Java对象。json-lib的优势在于其广泛的兼容性,可以与许多其他流行的Java库集成,例如Hibernate、Spring等。 2. **commons-beanutils**:Apache Commons BeanUtils是...

    json 数据解析包

    总结来说,这些Java库为处理JSON数据提供了强大的工具,从解析JSON字符串到创建和操作JSON对象,再到序列化回字符串,整个过程都得到了很好的支持。它们的结合使用大大简化了开发人员的工作,提高了开发效率。

    一个"短小精悍"的 json 解析库Tomjson.zip

    致了解了Java类与json字符串之间的应该如何转换及代码实现。Tomjson是基于Java反射来进行序列化工作的,并不像fastjson那样可以通过ASM框架来指针每种类型生成对应的序列化类;Tomjson架构简单,理解起来较其他json...

    json-lib依赖包

    JSON库如`json-lib`则提供了将Java对象转换为JSON格式和从JSON字符串反序列化为Java对象的能力。在Java开发中,`json-lib`是一个常用的库,尤其对于那些不支持原生JSON处理的老版本JDK或者需要跨平台兼容性的项目。 ...

    json-lib-2.4及其依赖包.zip

    2. 对象转JSON:将Java对象转换为JSON字符串,可以使用`JSONObject.fromObject()`方法,对于集合或数组,可以使用`JSONArray.fromObject()`。 3. JSON转对象:从JSON字符串反序列化回Java对象,可以使用`JSONObject...

    json用到的全部jar包

    在处理JSON时,可能需要将Java对象转化为JSON字符串,或者将JSON数据还原为Java对象,ezmorph在这种场景下可以提供帮助。 2. **gson-2.8.0.jar 和 gson-2.7.jar**:Google的Gson库是处理JSON的流行选择。它可以将...

    fastjson-1.2.76.zip

    2. 支持Java反射:Fastjson可以自动通过JavaBean的getter和setter方法来处理JSON对象,无需额外配置。 3. 动态操作:提供`JSONObject`和`JSONArray`接口,可以动态修改JSON内容,操作灵活。 4. 自动类型转换:...

    FastJson解析Json数据源码-旧版

    FastJson的核心功能是将Java对象转换为JSON字符串,以及将JSON字符串反序列化为Java对象。它提供了丰富的API接口,使得操作JSON变得简单易行。FastJson的高效主要得益于其对数据结构和算法的精心设计。 首先,我们...

    读取文件数据并解析成bean实体类

    6. **任意文件转任意实体**:实现这一功能可能需要一种灵活的策略,如使用反射机制动态地获取Bean的类信息,并结合文件解析器来填充Bean的属性。同时,需要考虑文件编码、数据格式识别等问题。 7. **配置Class类**...

Global site tag (gtag.js) - Google Analytics