首先声明,这篇文章基本属于翻译的东西,如果你对原文感兴趣的话可以访问[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=newboolean[]{true,false,true};
- JSONArrayjsonArray=JSONArray.fromObject(boolArray);
- System.out.println(jsonArray);
-
- Listlist=newArrayList();
- list.add("first");
-
- list.add("second");
- JSONArrayjsonArray=JSONArray.fromObject(list);
- System.out.println(jsonArray);
-
- JSONArrayjsonArray=JSONArray.fromObject("['json','is','easy']");
- System.out.println(jsonArray);
-
三:将javaBean和HashMap转化成Json对象
MAP
Mapmap=newHashMap();
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){returnthis.arr[i];}"
);
JSONObjectjsonObject=JSONObject.fromObject(map);
System.out.println(jsonObject);
JAVABEAN
- classMyBean{
- privateStringname="json";
-
- privateintpojoId=1;
- privatechar[]options=newchar[]{'a','f'};
- privateStringfunc1="function(i){returnthis.options[i];}";
- privateJSONFunctionfunc2=newJSONFunction(newString[]{"i"},"returnthis.options[i];");
-
-
- ...
- }
-
- JSONObjectjsonObject=JSONObject.fromObject(newMyBean());
- System.out.println(jsonObject);
-
-
-
-
当然还有从json对象转到java对象,从xml转到json,从json转到xml这几种转化,也十分简单,感兴趣的话可以直接看这篇文章里的例子: