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字符串的转换,并提供具体的示例代码。 #### 二、Java反射机制简介 Java反射机制允许程序在运行时访问类的信息,包括字段、构造函数以及方法等。通过...
对于"java反射实现Object转json"这个主题,我们将深入探讨如何使用反射机制将Java对象转换为JSON格式的数据。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...
文档中提到的实例代码,使用Java反射机制实现将Java Bean对象转换成JSON字符串。具体步骤如下: - 利用Class类的forName方法,通过Java Bean对象的类型信息加载对应的Class对象。 - 遍历Class对象中声明的字段...
标题中的“提供将对象转换成JSON字符串的方法 (2).pdf”指的是一个关于如何在Java编程中将对象转换为JSON格式的文档。描述中提到的是这个文档的更新日期和作者信息。标签“互联网”可能暗示了这个方法在Web开发或者...
这些转换方法是通过自定义的`JSONUtil`类实现的,它没有依赖特定的JSON库,而是手动实现了对象到JSON字符串的转换。在实际项目中,开发者通常会选择已有的成熟库,如Jackson、Gson或FastJSON,它们提供了更强大、更...
例如,你可以创建一个Java Bean实例,然后调用相应的转换方法,得到对应的JSON Schema字符串,再将这个字符串写入到文件中。这样,当你需要验证基于这个Java Bean的JSON数据时,就可以利用生成的JSON Schema来进行...
描述中提到的"json自动生成javabean的工具jar"进一步强调了这个工具的功能,即用户只需提供JSON字符串或JSON文件,该工具就可以自动生成相应的JavaBean代码,开发者无需手动编写JavaBean的属性和getter/setter方法。...
综上所述,"javaBean.rar"中的工具可能是为了简化开发过程中JSON字符串与Java实体类之间的转换,通过反射技术实现了这一自动化过程,降低了代码的复杂性和冗余,提高了开发效率。同时,JavaUtil.java提供的通用方法...
例如,可以创建一个JSON对象,将其序列化为字符串,或者将JSON字符串反序列化为Java对象。通过这样的方式,Java开发者能够轻松地处理JSON数据,从而实现与Web服务、数据库或其他系统的数据交换。
手动转换是通过编程的方式,逐个解析JSON字符串,然后设置到JavaBean的相应字段。这需要编写大量的解析代码,效率较低且容易出错。例如,你可以使用`org.json`库的`JSONObject`和`JSONArray`类来解析JSON,并通过...
有了这些库的支持,Java开发者可以更高效地处理JSON数据,无论是解析JSON字符串,还是将Java对象转换为JSON格式,都能更加便捷。同时,这些库还提供了许多其他辅助功能,增强了Java应用程序的功能和灵活性。在实际...
它还提供了反向转换,即从JSON字符串解析出Java对象。json-lib的优势在于其广泛的兼容性,可以与许多其他流行的Java库集成,例如Hibernate、Spring等。 2. **commons-beanutils**:Apache Commons BeanUtils是...
总结来说,这些Java库为处理JSON数据提供了强大的工具,从解析JSON字符串到创建和操作JSON对象,再到序列化回字符串,整个过程都得到了很好的支持。它们的结合使用大大简化了开发人员的工作,提高了开发效率。
致了解了Java类与json字符串之间的应该如何转换及代码实现。Tomjson是基于Java反射来进行序列化工作的,并不像fastjson那样可以通过ASM框架来指针每种类型生成对应的序列化类;Tomjson架构简单,理解起来较其他json...
JSON库如`json-lib`则提供了将Java对象转换为JSON格式和从JSON字符串反序列化为Java对象的能力。在Java开发中,`json-lib`是一个常用的库,尤其对于那些不支持原生JSON处理的老版本JDK或者需要跨平台兼容性的项目。 ...
2. 对象转JSON:将Java对象转换为JSON字符串,可以使用`JSONObject.fromObject()`方法,对于集合或数组,可以使用`JSONArray.fromObject()`。 3. JSON转对象:从JSON字符串反序列化回Java对象,可以使用`JSONObject...
在处理JSON时,可能需要将Java对象转化为JSON字符串,或者将JSON数据还原为Java对象,ezmorph在这种场景下可以提供帮助。 2. **gson-2.8.0.jar 和 gson-2.7.jar**:Google的Gson库是处理JSON的流行选择。它可以将...
2. 支持Java反射:Fastjson可以自动通过JavaBean的getter和setter方法来处理JSON对象,无需额外配置。 3. 动态操作:提供`JSONObject`和`JSONArray`接口,可以动态修改JSON内容,操作灵活。 4. 自动类型转换:...
6. **任意文件转任意实体**:实现这一功能可能需要一种灵活的策略,如使用反射机制动态地获取Bean的类信息,并结合文件解析器来填充Bean的属性。同时,需要考虑文件编码、数据格式识别等问题。 7. **配置Class类**...
FastJson的核心功能是将Java对象转换为JSON字符串,以及将JSON字符串反序列化为Java对象。它提供了丰富的API接口,使得操作JSON变得简单易行。FastJson的高效主要得益于其对数据结构和算法的精心设计。 首先,我们...