http://code.google.com/p/google-gson/
http://json-lib.sourceforge.net/index.html
json-lib使用了ezmorph进行对象之间的转换,已经实现了基本类型的转换支持。基本使用上手较快。
需要下面JAR 包
- jakarta commons-lang 2.4
- jakarta commons-beanutils 1.7.0
- jakarta commons-collections 3.2
- jakarta commons-logging 1.1.1
boolean[] boolArray = new boolean[]{true,false,true};
JSONArray jsonArray = JSONArray.fromObject( boolArray );
System.out.println( jsonArray );
// prints [true,false,true]
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray = JSONArray.fromObject( list );
System.out.println( jsonArray );
// prints ["first","second"]
JSONArray jsonArray = JSONArray.fromObject( "['json','is','easy']" );
System.out.println( jsonArray );
// prints ["json","is","easy"]
From Beans & Maps to JSON
Map map = new HashMap();
map.put( "name", "json" );
map.put( "bool", Boolean.TRUE );
map.put( "int", new Integer(1) );
map.put( "arr", new String[]{"a","b"} );
map.put( "func", "function(i){ return this.arr[i]; }" );
JSONObject jsonObject = JSONObject.fromObject( map );
System.out.println( jsonObject );
// prints ["name":"json","bool":true,"int":1,"arr":["a","b"],"func":function(i){ return this.arr[i]; }]
class MyBean{
private String name = "json";
private int pojoId = 1;
private char[] options = new char[]{'a','f'};
private String func1 = "function(i){ return this.options[i]; }";
private JSONFunction func2 = new JSONFunction(new String[]{"i"},"return this.options[i];");
// getters & setters
...
}
JSONObject jsonObject = JSONObject.fromObject( new MyBean() );
System.out.println( jsonObject );
/* prints
{"name":"json","pojoId":1,"options":["a","f"],
"func1":function(i){ return this.options[i];},
"func2":function(i){ return this.options[i];}}
From JSON to Beans
String json = "{name=\"json\",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}";
JSONObject jsonObject = JSONObject.fromObject( json );
Object bean = JSONObject.toBean( jsonObject );
assertEquals( jsonObject.get( "name" ), PropertyUtils.getProperty( bean, "name" ) );
assertEquals( jsonObject.get( "bool" ), PropertyUtils.getProperty( bean, "bool" ) );
assertEquals( jsonObject.get( "int" ), PropertyUtils.getProperty( bean, "int" ) );
assertEquals( jsonObject.get( "double" ), PropertyUtils.getProperty( bean, "double" ) );
assertEquals( jsonObject.get( "func" ), PropertyUtils.getProperty( bean, "func" ) );
List expected = JSONArray.toList( jsonObject.getJSONArray( "array" ) );
Assertions.assertListEquals( expected, (List) PropertyUtils.getProperty( bean, "array" ) );
String json = "{bool:true,integer:1,string:\"json\"}";
JSONObject jsonObject = JSONObject.fromObject( json );
BeanA bean = (BeanA) JSONObject.toBean( jsonObject, BeanA.class );
assertEquals( jsonObject.get( "bool" ), Boolean.valueOf( bean.isBool() ) );
assertEquals( jsonObject.get( "integer" ), new Integer( bean.getInteger() ) );
assertEquals( jsonObject.get( "string" ), bean.getString() );
gson
提供了一个JSON
<-->JavaBean相互转换的框架,采用了java中的reflect,同时类型转换要求比较严格, 如果是图方便最好还是用json-lib。第一眼就没看出来怎么用,后来才发现:
Gson是google自己写的一个Java对象与JSON相互转化的工具包.它轻巧简便,易于使用,而且有很完备的文档可供查询,不用多说,当然是开源喽.
List<List<Map<String, String>>>类型的java对象obj转化为json的格式,你可以这么写 Gson gson = new Gson;
String json = gson.toJson(obj, new TypeToken<List<List<Map<String, String>>>(){}.getType());// to Json
List<List<Map<String, String>>> obj2 = gson.from(obj, new TypeToken<List<List<Map<String, String>>>(){}.getType());// from json
Gson这个类是其中的关键,它负责来进行转化java对象和json.将对象转化为json的格式,使用方法toJson(),这个方法有几个不同的用
法.对于比较简单的对象,比如一个数组,或者一个list,你可以只将要转化的java对象作为参数,可以如果你的对象的格式蛮复杂,那么,你就需要另一
个参数来描述一个java对象的结构,这另一个参数可以是Type或者是Class,它的建立方法也很简单
分享到:
相关推荐
在Java开发中,有时我们需要将XML转换为JSON,反之亦然,或者将这些格式与JavaBean对象进行互换,以便于数据处理和传输。本篇文章将深入探讨XML、JSON与JavaBean之间的转换方法。 首先,我们来看XML和JSON的特性。...
通过JSON库,如net.sf.json,我们可以方便地在Java对象和JSON字符串间进行互换,从而实现数据的序列化和反序列化。在处理复杂结构时,尤其是嵌套的对象和数组,需要特别注意类型转换和可能出现的类型匹配问题。
3. **Map和JSON的互换**:JSON对象与Java的Map对象有很高的相似性,可以将Map转换为JSON对象,也可以将JSON对象解析为Map。 在实际开发中,JSON与AJAX(Asynchronous JavaScript and XML)结合使用,允许Web应用在...
3. **commons-beanutils-1.8.3.jar**:Apache Commons BeanUtils库简化了JavaBean对象的属性访问,它能帮助将JavaBean的属性值与JSON对象的键值对进行映射,从而实现JSON与Java对象的互换。 4. **commons-lang-2.1....
JSON(JavaScript Object Notation...总的来说,这个"json解析包"是一个方便的工具,能够帮助开发者轻松地在Java应用程序中处理JSON数据,无论是进行对象与JSON的转换,还是XML与JSON之间的互换,都能提供强大的支持。
前者将JSON对象转化为指定类型的JavaBean,后者将JSON数组转化为指定类型的List。 6. **自定义转换规则**:在处理复杂的对象结构时,可能需要自定义转换规则。JSON-lib允许通过实现`JsonConfig`接口并设置转换策略...
在Java开发中,JSON常用于数据传输和存储,因为它能够很好地与Java对象进行互换。JSON-lib是一个Java库,它提供了方便的API来处理JSON和XML之间的转换。 1. JSON-lib的功能: - 将Java对象转换为JSON格式的字符串...
Java Servlet与JSON(JavaScript ...开发者可以根据项目需求选择合适的库来实现JSON与Java对象的互换,从而提升开发效率和代码质量。在实际使用中,这些依赖包可以很好地支持JSON在Java Servlet环境中的各种应用场景。
- commons-beanutils-x.x.x.jar:Json-lib依赖Apache Commons BeanUtils库来处理JavaBean对象。 - commons-collections-x.x.x.jar:依赖Apache Commons Collections库,用于集合操作。 - commons-lang-x.x.x.jar...
- JavaBean和JSON的互换:可以使用Gson或Jackson库将JavaBean对象转换成JSON字符串,反之亦然。 - List和JSON的互换:将List对象转换成JSON数组,或者将JSON数组解析成List。 - Map和JSON的互换:将Map对象转换成...
json-lib是一个广泛使用的开源Java库,它允许Java对象与JSON格式进行互换。 在Java开发中,json-lib提供了多种JSON解析器,可以将Java对象转换为JSON字符串,反之亦然。这对于在服务器端处理HTTP请求或响应时非常...
通过简单的API,开发者可以轻松地实现JSON与Java对象的互换。 2. **json-lib-2.2.2-jdk15.jar**:这是一个多兼容性的JSON库,支持多种JVM环境,如JDK1.5。Json-lib提供了多种语言的JSON处理方式,如Java、.NET等。...
- **与其他数据结构的互换**:json-lib允许开发者将JSON数据转换为Java中的各种数据结构,如JavaBean、Map、List等,反之亦然。这对于在Java应用程序中处理来自服务器或客户端的JSON数据非常有用。 - **错误处理**...
这个库提供了一系列的API,使得Java对象能够与JSON进行互换。在使用`json-lib`之前,需要在项目中引入对应的依赖,如在Maven项目中添加以下依赖: ```xml <groupId>net.sf.json-lib</groupId> <artifactId>json-...
而Gson则是一种强大的Java库,用于在Java对象和JSON数据之间进行互换。 - **总结**: - JSON是Android SDK官方的库,主要用于客户端开发。 - GSON适用于服务端开发。 - GSON比JSON功能更强大,支持更多的特性。 ...
它的功能包括解析JSON字符串,将Java对象序列化为JSON,以及JSON与XML之间的互换。 6. **ezmorph-1.0.6.jar**:EZMorph库提供了一种简单的方式来转换Java对象,对于JSON数据的转换和适应性处理可能很有帮助。 7. *...
Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...