1. 程式人生 > >json to bean(JSONObject類詳解)

json to bean(JSONObject類詳解)

返回 ddr pre throw expr static urn win ash

原博客地址:http://blog.csdn.net/harrison2010/article/details/43700991

 1 方式一  
 2 /** 
 3    * Creates a JSONDynaBean from a JSONObject. 
 4    */  
 5   public static Object toBean( JSONObject jsonObject )   
 6 返回的數據類型明顯不是我們常用的數據類型  
 7      
 8 方式二  
 9 /** 
10    * Creates a bean from a JSONObject, with a specific target class.<br> 
11 */ 12 public static Object toBean( JSONObject jsonObject, Class beanClass ) 13 14 方式三(常用) 15 /** 16 * Creates a bean from a JSONObject, with a specific target class.<br> 17 * If beanClass is null, this method will return a graph of DynaBeans. Any 18 * attribute that is a JSONObject and matches a key in the classMap will be
19 * converted to that target class.<br> 20 * The classMap has the following conventions: 21 * <ul> 22 * <li>Every key must be an String.</li> 23 * <li>Every value must be a Class.</li> 24 * <li>A key may be a regular expression.</li>
25 * </ul> 26 */ 27 public static Object toBean( JSONObject jsonObject, Class beanClass, Map classMap ) 28 29 30 方式四 31 /** 32 * Creates a bean from a JSONObject, with the specific configuration. 33 */ 34 public static Object toBean( JSONObject jsonObject, JsonConfig jsonConfig ) 35 方式2其實最終調用的就是方式四,看來jsonConfig對象很重要,決定了最後返回的數據類型,當然還遠不至於這些。 36 方式3也最終調用的是方式4 37 38 39 方式五(常用) 40 /** 41 * Creates a bean from a JSONObject, with the specific configuration. 42 */ 43 public static Object toBean( JSONObject jsonObject, Object root, JsonConfig jsonConfig ) 44 直接對已有對象的處理,把json的數據寫入到已有對象中。 45 46 比較常用的方式三與方式五 47 例子:接著bean to json的代碼 48 49 //二 json to object 50 51 JSONObject jsonObject = JSONObject.fromObject(returnString); 52 Object returnObject = null; 53 //辦法一 class+map config的方式三 54 Map config = new HashMap(); 55 config.put("addresses", Address.class); 56 config.put("sameTest", Person.class); 57 returnObject = JSONObject.toBean(jsonObject, Person.class,config); 58 System.out.println(returnObject); 59 60 //辦法二 object+JsonConfig方式五 61 p = new Person(); 62 JsonConfig jc = new JsonConfig(); 63 jc.setClassMap(config); 64 jc.setNewBeanInstanceStrategy(new NewBeanInstanceStrategy() { 65 @Override 66 public Object newInstance(Class target, JSONObject source) 67 throws InstantiationException, IllegalAccessException, 68 SecurityException, NoSuchMethodException, InvocationTargetException { 69 if( target != null ){ 70 if(target.getName().equals(Map.class.getName())){ 71 return new HashMap(); 72 } 73 return NewBeanInstanceStrategy.DEFAULT.newInstance(target, source); 74 } 75 76 return null; 77 } 78 }); 79 JSONObject.toBean(jsonObject, p, jc); 80 System.out.println(p.getAddresses().get(0).getAddress());

json to bean(JSONObject類詳解)