json to bean(JSONObject類詳解)

來源:互聯網
上載者:User

標籤:ddr   str   map   rom   調用   and   rri   dex   express   

原部落格地址: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類詳解)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.