json与java数据的转换 -凯发k8网页登录

苟有恒,何必三更起五更眠;
最无益,只怕一日曝十日寒.
posts - 241, comments - 318, trackbacks - 0, articles - 16
posted on 2008-10-31 02:47 xcp 阅读(117386) 评论(11)    
关键字: json java
json-lib这个java类包用于把bean,map和xml转换成json并能够把json转回成bean和dynabean。

下载地址:
还要需要的第3方包:
org.apache.commons(3.2以上版本)
org.apache.oro
net.sf.ezmorph(ezmorph-1.0.4.jar)
nu.xom

1、list
java代码
  1. boolean[] boolarray = newboolean[]{true,false,true};      
  2.             jsonarray jsonarray1 = jsonarray.fromobject( boolarray );      
  3.             system.out.println( jsonarray1 );      
  4.            // prints [true,false,true]     
  5.               
  6.             list list = new arraylist();      
  7.             list.add( "first" );      
  8.             list.add( "second" );      
  9.             jsonarray jsonarray2 = jsonarray.fromobject( list );      
  10.             system.out.println( jsonarray2 );      
  11.            // prints ["first","second"]     
  12.   
  13.             jsonarray jsonarray3 = jsonarray.fromobject( "['json','is','easy']" );      
  14.             system.out.println( jsonarray3 );      
  15.            // prints ["json","is","easy"]     

2、map
java代码
  1. map map = new hashmap();      
  2.           map.put( "name", "json" );      
  3.           map.put( "bool", boolean.true );      
  4.             
  5.           map.put( "int", new integer(1) );      
  6.           map.put( "arr", new string[]{"a","b"} );      
  7.           map.put( "func", "function(i){ return this.arr[i]; }" );      
  8.           jsonobject json = jsonobject.fromobject( map );      
  9.           system.out.println( json );      
  10.          //{"func":function(i){ return this.arr[i]; },"arr":["a","b"],"int":1,"name":"json","bool":true}  

3、bean
java代码
  1. /**
  2.       * bean.java
  3.          private string name = "json";   
  4.          private int pojoid = 1;   
  5.          private char[] options = new char[]{'a','f'};   
  6.          private string func1 = "function(i){ return this.options[i]; }";   
  7.          private jsonfunction func2 = new jsonfunction(new string[]{"i"},"return this.options[i];");
  8.      */   
  9. jsonobject jsonobject = jsonobject.fromobject( new jsonbean() );      
  10. system.out.println( jsonobject );      
  11. //{"func1":function(i){ return this.options[i]; },"pojoid":1,"name":"json","options":["a","f"],"func2":function(i){ return this.options[i]; }}    

4、beans
java代码
  1. /**
  2.        * private int row ;
  3.            private int col ;
  4.            private string value ;
  5.        *
  6.        */  
  7. list list = new arraylist();   
  8.           jsonbean2 jb1 = new jsonbean2();   
  9.           jb1.setcol(1);   
  10.           jb1.setrow(1);   
  11.           jb1.setvalue("xx");   
  12.             
  13.           jsonbean2 jb2 = new jsonbean2();   
  14.           jb2.setcol(2);   
  15.           jb2.setrow(2);   
  16.           jb2.setvalue("");   
  17.             
  18.             
  19.           list.add(jb1);   
  20.           list.add(jb2);   
  21.             
  22.           jsonarray ja = jsonarray.fromobject(list);   
  23.           system.out.println( ja.tostring() );   
  24.          //[{"value":"xx","row":1,"col":1},{"value":"","row":2,"col":2}]  

5、string to bean
java代码
  1. string json = "{name=\"json\",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}";      
  2. jsonobject jsonobject = jsonobject.fromstring(json);      
  3. object bean = jsonobject.tobean( jsonobject );      
  4. assertequals( jsonobject.get( "name" ), propertyutils.getproperty( bean, "name" ) );      
  5.    assertequals( jsonobject.get( "bool" ), propertyutils.getproperty( bean, "bool" ) );      
  6.    assertequals( jsonobject.get( "int" ), propertyutils.getproperty( bean, "int" ) );      
  7.     assertequals( jsonobject.get( "double" ), propertyutils.getproperty( bean, "double" ) );      
  8.     assertequals( jsonobject.get( "func" ), propertyutils.getproperty( bean, "func" ) );      
  9.    list expected = jsonarray.tolist( jsonobject.getjsonarray( "array" ) );      
  10.    assertequals( expected, (list) propertyutils.getproperty( bean, "array" ) );    


java代码
  1. string json = "{\"value\":\"xx\",\"row\":1,\"col\":1}";      
  2. jsonobject jsonobject = jsonobject.fromstring(json);   
  3.    jsonbean2 bean = (jsonbean2) jsonobject.tobean( jsonobject, jsonbean2.class );      
  4.     assertequals( jsonobject.get( "col" ),new integer( bean.getcol())   );      
  5.       assertequals( jsonobject.get( "row" ), new integer( bean.getrow() ) );      
  6.       assertequals( jsonobject.get( "value" ), bean.getvalue() );    



6 json to xml
1)
jsonobject json = new jsonobject( true );
string xml = xmlserializer.write( json );



2)
jsonobject json = jsonobject.fromobject("{\"name\":\"json\",\"bool\":true,\"int\":1}");
string xml = xmlserializer.write( json );

json
true
1


json
true
1

3)
jsonarray json = jsonarray.fromobject("[1,2,3]");
string xml = xmlserializer.write( json );


7 、xml to json



jsonarray json = (jsonarray) xmlserializer.read( xml );
system.out.println( json );
// prints [function(i,j){ return matrix[i][j]; }]

出自




名称: ♪4c.esl | .↗evon
口号: 遇到新问题♪先要寻找一个方案乄而不是创造一个方案こ
mail:


feedback

# re: json与java数据的转换  回复     

2008-10-31 11:27 by
凯发k8网页登录官网上的例子

# re: json与java数据的转换  回复     

2008-11-04 14:59 by zhyiwww
不错

# re: json与java数据的转换  回复     

2009-06-01 10:49 by
凯发k8网页登录官网上这个例子我在myeclipse7.1下跑不动啊。
package jsontest;

import junit.framework.testcase;
import net.sf.json.jsonarray;

public class jsonlibtest extends testcase {

public void testjsonarray() {
boolean[] boolarray = new boolean[]{true,false,true};
jsonarray jsonarray = jsonarray.fromobject( boolarray );
system.out.println( jsonarray );
}
}

# re: json与java数据的转换  回复     

2009-06-22 15:15 by 冰河快狼
不错的了,支持

# re: json与java数据的转换[未登录]  回复     

2011-06-16 15:23 by
/**
*/
public static void main(string[] orgs){

}

# re: json与java数据转换  回复     

2011-11-15 17:20 by
..

# re: json与java数据的转换  回复     

2011-12-28 08:24 by
可以使用www.bejson.com这个json在线工具做json的格式校验和数据视图

# re: json与java数据的转换[未登录]  回复     

2012-06-26 17:03 by
最近我发现有的时候添加设置json对象的属性的时候,如果属性本身也是json对象一定要先设置属性的json对象的特性,再加到父json对象中,才能使得父json对象转换成字符串中体现其属性json对象特性,,我猜测可能加入的属性是直接转换成字符串了,即信息而不是属性json对象的引用.

# re: json与java数据的转换  回复     

2013-11-18 14:47 by
22222

# re: json与java数据的转换  回复     

2013-12-18 21:09 by

推荐一个json格式化工具,json校验工具,
无广告加载快的工具

# re: json与java数据的转换  回复     

2014-05-23 10:13 by
json代码下载:

只有注册用户后才能发表评论。


网站导航:
              
 
网站地图