在json.org上面可以看到现在java方面的支持json的开源项目很多。
最近稍微看了下gson和json-lib,第一次使用印象如下:
1、gson提供了一个JSON<-->JavaBean相互转换的框架,采用了java中的reflect,同时类型转换要求比较严格, 如果是图方便最好还是用json-lib。第一眼就没看出来怎么用,后来才发现:
-
-
String src =
"{\"date\":\"2008-10-25\",\"str\":\"sss\",\"i\":23,\"l\":333443,\"d\":1.23}"
;
-
Gson gson =
new
GsonBuilder().setDateFormat(
"yyyy-MM-dd"
).create();
-
BeanA a = gson.fromJson(src, BeanA.
class
);
-
-
-
Gson gson =
new
GsonBuilder()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
.create();
-
-
BeanA a =
new
BeanA();
-
a.setD(Double.valueOf(
"1.23"
));
-
a.setDate(
new
Date());
-
a.setI(Integer.valueOf(
23
));
-
a.setL(Long.valueOf(
"333443"
));
-
a.setStr(
"sss"
);
-
-
Map m =
new
HashMap();
-
m.put(
"a"
,
1
);
-
m.put(
"b"
, 1l);
-
m.put(
"c"
,
true
);
-
m.put(
"d"
,
"str"
);
-
-
Map mA =
new
HashMap();
-
mA.put(
"bean"
, a);
-
-
-
Type mapType =
new
TypeToken<Map<String, String>>() { }.getType();
-
String rs = gson.toJson(m,mapType);
-
System.out.println(rs);
-
-
Type mapTypeA =
new
TypeToken<Map<String, BeanA>>() { }.getType();
-
String rsA = gson.toJson(mA,mapTypeA);
-
System.out.println(rsA);
-
-
Type mapTypeB =
new
TypeToken<BeanA>() { }.getType();
-
String rsB = gson.toJson(a,mapTypeB);
-
System.out.println(rsB);
-
-
-
Type mapTypeC =
new
TypeToken<Date>() { }.getType();
-
String rsC = gson.toJson(
new
Date(),mapTypeC);
-
System.out.println(rsC);
-
不过它的代码是个学习jdk1.5中的泛型的好资料。
2、json-lib使用了ezmorph进行对象之间的转换,已经实现了基本类型的转换支持。基本使用上手较快。
3、json-lib由于使用了ezmorph进行转换,其java.util.Date的转换方式已经实现了,只需要手动注册需要的转换的pattern即可。
注册方法为:
-
JSONUtils.getMorpherRegistry().registerMorpher(
new
DateMorpher(
new
String[]{
-
"yyyy-MM-dd HH:mm"
,
-
"yyyy-MM-dd"
-
}));
-
// 然后调用json->bean的方法
-
Object a = JSONObject.toBean(JsonSrc);
-
//or
-
JSONSerializer.toJava(
JsonSrc
);
-
-
4、从json-lib的框架结构来看,在jsonconfig中提供了较好的java->json转换的接口,而json->java中默认使用了ezmorph中的转换方法,并且没有在jsonconfig中进行体现,只是全局都使用了JSONUtils.getMorpherRegistry()进行处理。所以要注册json->java的转换方法,貌似只能通过以上方法
进行。
分享到:
相关推荐
这篇博客主要探讨了几种用于这些格式互转的工具,下面将详细介绍这些工具及其使用方法。 1. **Gson** (Google的JSON库) Gson是由Google提供的一个开源库,它可以将Java对象转换为JSON字符串,反之亦然。使用Gson,...
JavaBean和JSON之间的转换在Java开发中非常常见,特别是在处理前后端交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JavaBean则是一种符合...
3. `commons-beanutils-1.7.0.jar`: Apache Commons BeanUtils 提供了简单而强大的JavaBean操作工具,可以便捷地读取和设置JavaBean的属性,这对于JSON转换来说至关重要。 4. `json-lib-2.3-jdk15.jar`: 这是`json-...
JavaBean和Map以及String与JSON之间的转换在Java开发中是非常常见的操作。这涉及到Java对象的序列化和反序列化,通常用于数据交换...通过使用这些工具,你可以轻松地在Java对象和JSON格式之间进行切换,满足各种需求。
通过fastjson实现了JavaBean,list<JavaBean>,MAP,list等格式与json格式之间的转换,已经附带fastjson的包,包的版本为fastjson-1.1.36.jar
`json-lib`还提供了XML与JSON的互转功能,这对于需要在两者间切换的场景非常有用。 总结来说,`json-lib`是一个强大且易用的工具,它使得在Java中处理JSON变得简单。通过其提供的API,我们可以方便地进行JSON字符...
在实际项目中,你可能会创建一个通用的工具类,包含上述方法,以便在任何需要JavaBean和XML互转的地方使用。在提供的`clientDemo`文件中,可能包含了这样的工具类示例,可以进一步研究和理解。 总结来说,JavaBean...
总结来说,JSON-lib是Java开发者处理JSON数据的强大工具,它可以方便地进行Java对象与JSON之间的转换,以及JSON与XML之间的互操作,简化了数据交换和处理的复杂性。在实际项目中,根据需求选择合适的版本和配置,...
总结一下,Map和Object互转以及Map和JSON互转是Java Web开发中常见的需求。前者可以通过反射、Apache Commons BeanUtils或者Introspector类来实现,而后者则可以使用专门的JSON处理库如Gson、Jackson或Fastjson。...
4. **JSON与XML的互转**:`json-lib`还提供了将JSON数据转换为XML,反之亦然的功能,这对于需要在两者之间切换的应用非常有用。 5. **JSON解析和生成**:可以使用`JSONParser`解析JSON字符串到JSON对象,或者使用`...
3. **XML与JSON的互转**:除了基本的JSON操作,Json-lib还支持XML与JSON之间的转换。这对于那些需要在XML和JSON之间切换的项目非常有用。 4. **自定义转换规则**:Json-lib允许开发者自定义转换规则,比如自定义...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...无论是在网络通信、数据存储还是数据展示,JSON都是一个非常实用的工具,而JSON-lib则为Java开发者提供了强大的支持。
Java则是一种强大的后端编程语言,两者之间的互转能够帮助我们有效地处理数据。以下是对给定的jar包文件及其在Java与JSON转换中的作用的详细解释: 1. **json-lib-2.4-jdk15.jar.zip**:这是JSON库的核心,用于实现...
此外,`json-lib`还支持与其他数据格式(如XML)的互转,增强了数据交换的灵活性。 另一方面,`json-taglib`则是一个基于JSP标签库的JSON处理库,主要针对JSP开发,提供了一套简洁的标签来生成和解析JSON。`json-...
- **JSON与其他格式的互转**:可以将JSON对象转换为XML、HTML表单,也可以从这些格式还原为JSON。 - **JSON操作**:提供了添加、删除、修改JSON对象和数组元素的方法。 ### 示例代码 以下是一些使用`json-lib`处理...
Java与JavaScript之间的JSON格式数据互转是一个非常实用的技能,尤其是在Web开发中,前后端数据交互频繁。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,由于其简洁和易于理解的特性,在很多...
此外,`json-lib`还支持XML与JSON的互转,以及自定义序列化和反序列化的规则,提供了丰富的功能来满足不同场景的需求。 总之,`json-lib`是一个强大的Java JSON处理库,通过依赖其他Apache Commons库,它可以方便地...
在JSON和Java对象互转时,这个库可以自动处理JavaBean的属性映射。 5. `ezmorph-1.0.3.jar`:EZMorph库提供了一种动态对象转换机制,可以将一种类型的对象转换为另一种类型。在处理JSON时,如果需要将JSON值转换为...
下载了绝对不后悔,100%好用,支持Mysql Oracle SQL Server ,PostgreSQl.等数据库 还有各种集成的小工具 表名互转驼峰,,,,Json.XML 字符串格式化..JSon与XMl互转,String字符串拼接等功能
5. **XML与JSON之间的转换**:Jsonlib还提供了XML与JSON之间的互转功能。这使得在处理XML数据时可以灵活地选择JSON作为中间格式,或者反之。 6. **JSON格式化与压缩**:Jsonlib提供了格式化JSON字符串(增加缩进、...