java对象转json、json数组 、xml


--------------------------------gan--------------------------------------------------------------------------
public class JsonToObjoct  {

/*
* jsonString json字符串
* listKey  jsonArray key 

* String 换成 jsonArray
* */
public static JSONArray StringToJsonArray (String jsonString,String listKey)
throws JSONException{
try{
JSONObject jsonObj = new JSONObject(jsonString);
JSONArray jsonArray = jsonObj.getJSONArray(listKey);
return jsonArray;
}catch (JSONException e) {
// TODO: handle exception
e.printStackTrace();
}
return null;
}

//json 
public static String JsonToString(HashMap<String, Object> paramHashMap) throws JSONException{
JSONObject param = new JSONObject();
// 添加通用参数
if(paramHashMap!=null)
{   
Iterator iterator=paramHashMap.entrySet().iterator();
Entry entry=null;
while(iterator.hasNext())
{  
entry=(Entry) iterator.next();
param.put((String) entry.getKey(), entry.getValue());
}
}
String jsonContent = param.toString();
return jsonContent;


}

//json 转换成 object 
public static List<Object> JsonToObject (JSONArray jsonArray)
throws JSONException {
    try {
int size = jsonArray.length();
List<Object> typeList = new ArrayList<Object>(size);
for (int i = 0; i < size; i++) {
typeList.add(jsonArray.getJSONObject(i));
}
return typeList;
    } catch (JSONException je) {
je.printStackTrace();
    }
    return null;
   }


//object 转成 jsonObject,jsonObject的名字取值
public static List<JSONObject> ObjectToJson(HashMap<String, Object> paramHashMap,String objectName)throws JSONException
{
List<JSONObject> jsonList = new ArrayList<JSONObject>();

 String jsonString =JsonToString(paramHashMap);
 JSONObject jsonObj = new JSONObject(jsonString);
 JSONObject object=(JSONObject) jsonObj.get(objectName);
 jsonList.add(object);
 return jsonList;



}



}

--------------------------------gan--------------------------------------------------------------------------


JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。 

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

1、List 
Java代码 
boolean[] boolArray =newboolean[]{true,false,true};      
            JSONArray jsonArray1 = JSONArray.fromObject( boolArray );      
            System.out.println( jsonArray1 );      
           // prints [true,false,true]    
              
            List list =newArrayList();      
            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"]     

2、Map 
Java代码 
Map map =newHashMap();      
          map.put("name","json");      
          map.put("bool", Boolean.TRUE );      
            
          map.put("int",newInteger(1) );      
          map.put("arr",newString[]{"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}  

3、BEAN 
Java代码 
/** 
      * Bean.java 
         private String name = "json";   
         private int pojoId = 1;   
         private char[] ptions = 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(newJsonBean() );      
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]; }}    

4、BEANS 
Java代码 
/** 
       * private int row ; 
           private int col ; 
           private String value ; 
       * 
       */  
List list =newArrayList();   
          JsonBean2 jb1 =newJsonBean2();   
          jb1.setCol(1);   
          jb1.setRow(1);   
          jb1.setValue("xx");   
            
          JsonBean2 jb2 =newJsonBean2();   
          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}]  

5、String to bean 
Java代码 
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") );    


Java代码 
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"),newInteger( bean.getCol())   );      
      assertEquals( jsonObject.get("row"),newInteger( bean.getRow() ) );      
      assertEquals( jsonObject.get("value"), bean.getValue() );    


6 json to xml 
1) 
JSONObject json = new JSONObject( true ); 
String xml = XMLSerializer.write( json ); 

<o class="object" null="true"> 

2) 
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> 
<o class="object"> 
<name type="string">json</name> 
<bool type="boolean">true</bool> 
<int type="number">1</int> 
</o> 
3) 
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> 

7 、xml to json 
<a class="array"> 
<e type="function" params="i,j"> 
return matrix[i][j]; 
</e> 
</a> 
<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 ); 
// prints [function(i,j){ return matrix[i][j]; }]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值