打算在新的AJAX实现中用JSON做为数据传递的格式,看了JSON的资料,很合我意,结构简单,冗余数据少,在JavaScript中使用方便。但是看了相关的Project,没有找到一个在Java Bean和JSON之间转换的好工具。在这方面,Xtream做的算是不错的了,但是和我的希望还是有点差距,而且也不想因为这为这个原因就把Xtream这套庞大的东西都加到我的架构中去,必竟,我的一向的原则是:简单就是美。
于是写了一个Utils类,来实现我的这个想法,代码还没有完全实现,基本的用法在这里描述一下。
从Bean到JSON的过程:
BeanA a=new BeanA();
a.setName("Seally");
a.setSex("女");
a.setAge(25);
a.getList().add("one");
a.getList().add("two");
a.getList().add("three");
a.setArray(new String[]{"111","222","333"});
BeanB b=new BeanB();
b.setName("Larlf");
b.setIarray(new int[]{7,8,9,10});
a.setObj(b);
log.debug(JsonUtils.object2JsonString(a));
最后的结果会输出JSON字符串:
{"sex":"女","name":"Seally","age":25,"class":"com.opesoft.tools.BeanA","obj":{"iarray":[7,8,9,10],"name":"Larlf","class":"com.opesoft.tools.BeanB"},"list":["one","two","three"],"array":["111","222","333"]}
最后的字符串中会把Bean的Class生成为一个属性,这点在反向转换时起着重要作用。Array和Collection属性没有生成对应的Class,因为这部分信息可以通过反射的方法从对象中取出。Object属性就要有Class,因为很可能反射取出的是接口或父类,这里一定要把具体对象的类型保留下来。
反向生成对象代码如下:
String str2="{\"sex\":\"女\",\"name\":\"Seally\",\"age\":25,\"class\":\"com.opesoft.tools.BeanA\",\"obj\":{\"iarray\":[7,8,9,10],\"name\":\"Larlf\",\"class\":\"com.opesoft.tools.BeanB\"},\"list\":[\"one\",\"two\",\"three\"],\"array\":[\"111\",\"222\",\"333\"]}";
JSONObject json2=new JSONObject(str2);
BeanA bean2=(BeanA)JsonUtils.json2Object(json2);
log.debug(((BeanB)bean2.getObj()).getName());[\code]
从输出的信息可以看到根据JSON字符串重新构建出了对象。
111
这个工具类的思路基本如此,实现上还不是很完善,比如说对Collection属性的支持还不好,多维数组当前也不支持。最近几天我会把它的功能给补充完整,有了一个可用的版本就把原代码给发布上来。
分享到:
相关推荐
在Java开发中,将Java Bean转换为JSON对象是一项常见的任务,特别是在处理前后端交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Java Bean则...
Java Bean转换为Json Schema是一种常见的数据转换操作,特别是在开发基于RESTful API的Web服务时,因为JSON Schema提供了数据验证和文档化的功能。Java Bean是Java编程中的一个概念,它是一类具有特定规则的POJO...
总的来说,`JAVA-JSON工具转换类`这个主题涵盖了JSON数据处理的核心部分,包括JSON的序列化和反序列化,以及数据类型的转换。通过`json-lib`和`ezmorph`这两个库,开发者可以轻松地在Java程序中处理JSON数据,而`...
在Java开发中,将Bean对象转换为JSON格式的数据是一项常见的任务,这有助于数据的传输、存储和展示。这里我们讨论的"bean2json_v20200515.zip"是一个工具,它能帮助开发者将Java Bean对象快速地转换为JSON字符串。这...
在Java开发中,处理JSON数据是一项常见的任务,而Gson和JsonBean是两个常用的库,用于将Java对象转换为JSON格式以及将JSON字符串反序列化为Java对象。本篇文章将详细探讨这两个库的使用方法,并通过一个具体的案例来...
为了将JSON转换为Java Bean,我们需要编写一个转换方法,如下: ```java import org.json.JSONObject; import java.lang.reflect.Method; public class JsonUtil { public static <T> T jsonToObject(JSONObject ...
`BeanToJsonSchema`项目正是为了解决这个问题,它提供了一个功能,能够将Java Bean对象转换成对应的JSON Schema,以便于在JSON数据交换和验证中使用。 JSON Schema的核心特性包括但不限于: 1. **数据类型**:JSON...
首先,Fastjson是阿里巴巴开源的一个高性能的JSON库,它不仅支持JSON到Java对象的解析和序列化,还提供了方便的Java Bean到JSON以及JSON到Java Bean的转换功能。 1. **Fastjson进行Java Bean到Map的转换**: 使用...
在Java开发中,经常需要将JSON字符串转换为Java Bean对象,反之亦然,以便于数据的序列化和反序列化。这篇博客(虽然链接无法在此提供)可能探讨了这个过程以及相关的工具和源码实现。 JSON是一种轻量级的数据交换...
在Java开发中,Java Bean和JSON对象之间的转换是常见的数据处理操作,特别是在处理网络请求和响应时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成...
在"JsonDemo"这个示例中,可能包含了使用Java进行XML、JSON转换的代码实例,可能涵盖了上述提到的一些方法。通过阅读和学习这些代码,开发者可以更好地理解并掌握这些转换技巧,从而在实际项目中更加高效地处理数据...
将JSON转换为BEAN或者反之,是为了方便数据的处理和存储。在Java开发中,自定义JSON转BEAN工具包可以提高开发效率,避免频繁地手动编写转换代码。下面我们将详细探讨JSON与BEAN之间的转换以及如何构建这样的工具包。...
1. **Bean到JSON转换**:工具类提供了将Java Bean对象转换为JSON字符串的方法。这通常通过使用如Jackson、Gson或Fastjson等库来实现。例如,使用Jackson库,可以调用`ObjectMapper.writeValueAsString(Object bean)`...
原生的java代码,用java代码实现json转换成java类bean对象,生成文件在当前类的同级目录
在JSON与Java Bean之间进行转换,可以让我们在前后端之间方便地传递和处理数据。 传统的做法是利用Java的反射API(Reflection API)来实现这种转换。反射允许我们在运行时检查类、接口、字段和方法的信息,并且能够...
总结来说,`net.sf.json`包是Java中处理JSON数据的一个强大工具,它提供了丰富的API来创建、操作和转换JSON对象,同时依赖于Apache Commons系列库以增强其功能。通过熟练掌握这个库,开发者可以更高效地进行JSON相关...
- `bean2json(Object bean)`:用于处理Java Bean对象,即具有getter和setter方法的标准Java对象。 - `list2json(List<?> list)`:用于处理`List`类型的对象。 - `array2json(Object[] array)`:用于处理数组对象。 -...
将json转换为javebean的工具,封装jsonschema2pojo,用户可以修改配置文件json2Beans.json,然后运行Json2JavaBean2.bat直接生成对应类。 能够批量转换json为bean,直接拷贝到项目中使用。 提醒: 需要提前安装java...
将 JSON 数据转换成 Java Bean 不仅能够简化数据处理逻辑,还能够更好地管理和维护代码。本文将详细介绍如何实现这一转换,并提供实际案例代码。 #### 二、准备工作 在进行 JSON 数据与 Java Bean 的转换之前,...
Gson是Google提供的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它使得Java对象可以轻松地转换成JSON格式,反之亦然,从而简化了JSON数据的处理。Gson库的设计目标是简单易用,同时保持灵活性,以适应...