首先声明,这篇文章基本属于翻译的东西,如果你对原文感兴趣的话可以访问[url]http://json-lib.sourceforge.net/[/url]这个网址,上面很详细,本人只是断章取义,快速应用这个东东而已.
最近做项目,前台要使用jquery+json来实现 js部分的编码,json就不多说了,目前很流行的ajax调用方式,本文关注的是:如何将javabean转化成json的数据格式。总所周知,json的数据格式如下所示:
{"name":"huqilong","age":18,"province":"henan"}.................
如果总是拿字符串来拼凑,就会成为一件很恶心的事情,于是google一下,找到了这个东西"Json-Lib".
一:安装,在刚才的那个网址下载下来json-lib.jar ,添加到你的工程下即可(注意它有几个依赖包,还好都是常用的jar包)。、
二:使用
JSONArray
JSONArray的静态方法fromObject()可以直接将java的Array 或者Collection类型转换成Json数据格式,如下:
boolean[] boolArray = new boolean[]{true,false,true};
- JSONArray jsonArray = JSONArray.fromObject( boolArray );
- System.out.println( jsonArray );
-
- List list = new ArrayList();
- list.add( "first" );
-
- list.add( "second" );
- JSONArray jsonArray = JSONArray.fromObject( list );
- System.out.println( jsonArray );
-
- JSONArray jsonArray = JSONArray.fromObject( "['json','is','easy']" );
- System.out.println( jsonArray );
-
三:将javaBean和HashMap转化成Json对象
MAP
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 );
JAVABEAN
- 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];");
-
-
- ...
- }
-
- JSONObject jsonObject = JSONObject.fromObject( new MyBean() );
- System.out.println( jsonObject );
-
-
-
-
-
当然还有从json对象转到java对象,从xml转到json,从json转到xml这几种转化,也十分简单,感兴趣的话可以直接看这篇文章里的例子: