Posted on 2007-10-08 15:08
G_G 閱讀(1844)
評論(0) 編輯 收藏 所屬分類:
json
參照:
???
http://json-lib.sourceforge.net/usage.html先 json <-> object package?test.json;
import?java.util.ArrayList;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;
import?org.apache.commons.beanutils.PropertyUtils;
import?com.jjm.viewBean.reportTableBean;
import?net.sf.json.JSONArray;
import?net.sf.json.JSONFunction;
import?net.sf.json.JSONObject;
import?junit.framework.TestCase;
public?class?JsonTest?extends?TestCase?{
//?object?to?json?************************************************************
????public?void?testList(){
????????boolean[]?boolArray?=?new?boolean[]{true,false,true};???
????????????JSONArray?jsonArray1?=?JSONArray.fromObject(?boolArray?);???
????????????System.out.println(?jsonArray1?);???
????????????//?prints?[true,false,true]??
????????????
????????????List?list?=?new?ArrayList();???
????????????list.add(?"first"?);???
????????????list.add(?"second"?);???
????????????JSONArray?jsonArray2?=?JSONArray.fromObject(?list?);???
????????????System.out.println(?jsonArray2?);???
????????????//?prints?["first","second"]??
????????????JSONArray?jsonArray3?=?JSONArray.fromObject(?"['json','is','easy']"?);???
????????????System.out.println(?jsonArray3?);???
????????????//?prints?["json","is","easy"]???
????}
????
????public?void?testMap(){
????????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?json?=?JSONObject.fromObject(?map?);???
?????????System.out.println(?json?);???
?????????//{"func":function(i){?return?this.arr[i];?},"arr":["a","b"],"int":1,"name":"json","bool":true}
????}
????/**
?????*?Bean.java?
????????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];");
????*/
?????public?void?testBean(){
?????????JSONObject?jsonObject?=?JSONObject.fromObject(?new?JsonBean()?);???
?????????System.out.println(?jsonObject?);???
?????????//{"func1":function(i){?return?this.options[i];?},"pojoId":1,"name":"json","options":["a","f"],"func2":function(i){?return?this.options[i];?}}??
?????}
?????
?????/**
??????*?private?int?row?;
??????????private?int?col?;
??????????private?String?value?;
??????*
??????*/
?????public?void?testBeans(){
?????????List?list?=?new?ArrayList();
?????????JsonBean2?jb1?=?new?JsonBean2();
?????????jb1.setCol(1);
?????????jb1.setRow(1);
?????????jb1.setValue("xx");
?????????
?????????JsonBean2?jb2?=?new?JsonBean2();
?????????jb2.setCol(2);
?????????jb2.setRow(2);
?????????jb2.setValue("");
?????????
?????????
?????????list.add(jb1);
?????????list.add(jb2);
?????????
?????????JSONArray?ja?=?JSONArray.fromObject(list);
?????????System.out.println(?ja.toString()?);
?????????//[{"value":"xx","row":1,"col":1},{"value":"","row":2,"col":2}]
?????}
?????
?????
//????json??to?object?************************************************************?????
?????
?????public?void?testJsonBeanUtil()throws?Exception{
?????????????String?json?=?"{name=\"json\",bool:true,int:1,double:2.2,func:function(a){?return?a;?},array:[1,2]}";???
????????????JSONObject?jsonObject?=?JSONObject.fromString(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"?)?);???
????????????assertEquals(?expected,?(List)?PropertyUtils.getProperty(?bean,?"array"?)?);??
?????}
?????
?????public?void?testJsonBean(){
?????????????String?json?=?"{\"value\":\"xx\",\"row\":1,\"col\":1}";???
????????????JSONObject?jsonObject?=?JSONObject.fromString(json);
????????????JsonBean2?bean?=?(JsonBean2)?JSONObject.toBean(?jsonObject,?JsonBean2.class?);???
????????????assertEquals(?jsonObject.get(?"col"?),new?Integer(?bean.getCol())??);???
????????????assertEquals(?jsonObject.get(?"row"?),?new?Integer(?bean.getRow()?)?);???
????????????assertEquals(?jsonObject.get(?"value"?),?bean.getValue()?);??
?????}
}??? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???
json <-> xmlJSON to XML- JSONObject?json?=?new?JSONObject(?true?);??
- String?xml?=?XMLSerializer.write(?json?);??
| - <o?class="object"?null="true">??
- ??????
|
- JSONObject?json?=?JSONObject.fromObject("{\"name\":\"json\",\"bool\":true,\"int\":1}");??
- String?xml?=?XMLSerializer.write(?json?);??
| - <o?class="object">??
- ???<name?type="string">json</name>??
- ???<bool?type="boolean">true</bool>??
- ???<int?type="number">1</int>??
- </o>??
|
- JSONArray?json?=?JSONArray.fromObject("[1,2,3]");??
- String?xml?=?XMLSerializer.write(?json?);??
| - <a?class="array"<??
- ???<e?type="number">1</e>??
- ???<e?type="number">2</e>??
- ???<e?type="number">3</e>??
- </a>??
|
xml to json - <a?class="array">??
- ??<e?type="function"?params="i,j">??
- ??????return?matrix[i][j];??
- ??</e>??
- </a>??
- JSONArray?json?=?(JSONArray)?XMLSerializer.read(?xml?);??
- System.out.println(?json?);??
- ?