`

net.sf.JSON

    博客分类:
  • JSON
阅读更多
Java代码  收藏代码
  1. 1 . /**     
  2. 2.     * 从一个JSON 对象字符格式中得到一个java对象,形如:     
  3. 3.     * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...}}     
  4. 4.     * @param object     
  5. 5.     * @param clazz     
  6. 6.     * @return     
  7. 7.     */      
  8. 8 .     public   static  Object getDTO(String jsonString, Class clazz){      
  9. 9 .        JSONObject jsonObject =  null ;      
  10. 10 .         try {      
  11. 11 .            setDataFormat2JAVA();       
  12. 12 .            jsonObject = JSONObject.fromObject(jsonString);      
  13. 13 .        } catch (Exception e){      
  14. 14 .            e.printStackTrace();      
  15. 15 .        }      
  16. 16 .         return  JSONObject.toBean(jsonObject, clazz);      
  17. 17 .    }      
  18. 18 .          
  19. 19 .     /**     
  20. 20.     * 从一个JSON 对象字符格式中得到一个java对象,其中beansList是一类的集合,形如:     
  21. 21.     * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...},     
  22. 22.     * beansList:[{}, {}, ...]}     
  23. 23.     * @param jsonString     
  24. 24.     * @param clazz     
  25. 25.     * @param map 集合属性的类型 (key : 集合属性名, value : 集合属性类型class) eg: ("beansList" : Bean.class)     
  26. 26.     * @return     
  27. 27.     */      
  28. 28 .     public   static  Object getDTO(String jsonString, Class clazz, Map map){      
  29. 29 .        JSONObject jsonObject =  null ;      
  30. 30 .         try {      
  31. 31 .            setDataFormat2JAVA();       
  32. 32 .            jsonObject = JSONObject.fromObject(jsonString);      
  33. 33 .        } catch (Exception e){      
  34. 34 .            e.printStackTrace();      
  35. 35 .        }      
  36. 36 .         return  JSONObject.toBean(jsonObject, clazz, map);      
  37. 37 .    }      
  38. 38 .          
  39. 39 .     /**     
  40. 40.     * 从一个JSON数组得到一个java对象数组,形如:     
  41. 41.     * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]     
  42. 42.     * @param object     
  43. 43.     * @param clazz     
  44. 44.     * @return     
  45. 45.     */      
  46. 46 .     public   static  Object[] getDTOArray(String jsonString, Class clazz){      
  47. 47 .        setDataFormat2JAVA();      
  48. 48 .        JSONArray array = JSONArray.fromObject(jsonString);      
  49. 49 .        Object[] obj =  new  Object[array.size()];      
  50. 50 .         for ( int  i =  0 ; i < array.size(); i++){      
  51. 51 .            JSONObject jsonObject = array.getJSONObject(i);      
  52. 52 .            obj[i] = JSONObject.toBean(jsonObject, clazz);      
  53. 53 .        }      
  54. 54 .         return  obj;      
  55. 55 .    }      
  56. 56 .          
  57. 57 .     /**     
  58. 58.     * 从一个JSON数组得到一个java对象数组,形如:     
  59. 59.     * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]     
  60. 60.     * @param object     
  61. 61.     * @param clazz     
  62. 62.     * @param map     
  63. 63.     * @return     
  64. 64.     */      
  65. 65 .     public   static  Object[] getDTOArray(String jsonString, Class clazz, Map map){      
  66. 66 .        setDataFormat2JAVA();      
  67. 67 .        JSONArray array = JSONArray.fromObject(jsonString);      
  68. 68 .        Object[] obj =  new  Object[array.size()];      
  69. 69 .         for ( int  i =  0 ; i < array.size(); i++){      
  70. 70 .            JSONObject jsonObject = array.getJSONObject(i);      
  71. 71 .            obj[i] = JSONObject.toBean(jsonObject, clazz, map);      
  72. 72 .        }      
  73. 73 .         return  obj;      
  74. 74 .    }      
  75. 75 .          
  76. 76 .     /**     
  77. 77.     * 从一个JSON数组得到一个java对象集合     
  78. 78.     * @param object     
  79. 79.     * @param clazz     
  80. 80.     * @return     
  81. 81.     */      
  82. 82 .     public   static  List getDTOList(String jsonString, Class clazz){      
  83. 83 .        setDataFormat2JAVA();      
  84. 84 .        JSONArray array = JSONArray.fromObject(jsonString);      
  85. 85 .        List list =  new  ArrayList();      
  86. 86 .         for (Iterator iter = array.iterator(); iter.hasNext();){      
  87. 87 .            JSONObject jsonObject = (JSONObject)iter.next();      
  88. 88 .            list.add(JSONObject.toBean(jsonObject, clazz));      
  89. 89 .        }      
  90. 90 .         return  list;      
  91. 91 .    }      
  92. 92 .          
  93. 93 .     /**     
  94. 94.     * 从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性     
  95. 95.     * @param object     
  96. 96.     * @param clazz     
  97. 97.     * @param map 集合属性的类型     
  98. 98.     * @return     
  99. 99.     */      
  100. 100 .     public   static  List getDTOList(String jsonString, Class clazz, Map map){      
  101. 101 .        setDataFormat2JAVA();      
  102. 102 .        JSONArray array = JSONArray.fromObject(jsonString);      
  103. 103 .        List list =  new  ArrayList();      
  104. 104 .         for (Iterator iter = array.iterator(); iter.hasNext();){      
  105. 105 .            JSONObject jsonObject = (JSONObject)iter.next();      
  106. 106 .            list.add(JSONObject.toBean(jsonObject, clazz, map));      
  107. 107 .        }      
  108. 108 .         return  list;      
  109. 109 .    }      
  110. 110 .          
  111. 111 .     /**     
  112. 112.     * 从json HASH表达式中获取一个map,该map支持嵌套功能     
  113. 113.     * 形如:{"id" : "johncon", "name" : "小强"}     
  114. 114.     * 注意commons-collections版本,必须包含org.apache.commons.collections.map.MultiKeyMap     
  115. 115.     * @param object     
  116. 116.     * @return     
  117. 117.     */      
  118. 118 .     public   static  Map getMapFromJson(String jsonString) {      
  119. 119 .        setDataFormat2JAVA();      
  120. 120 .        JSONObject jsonObject = JSONObject.fromObject(jsonString);      
  121. 121 .        Map map =  new  HashMap();      
  122. 122 .         for (Iterator iter = jsonObject.keys(); iter.hasNext();){      
  123. 123 .            String key = (String)iter.next();      
  124. 124 .            map.put(key, jsonObject.get(key));      
  125. 125 .        }      
  126. 126 .         return  map;      
  127. 127 .    }      
  128. 128 .          
  129. 129 .     /**     
  130. 130.     * 从json数组中得到相应java数组     
  131. 131.     * json形如:["123", "456"]     
  132. 132.     * @param jsonString     
  133. 133.     * @return     
  134. 134.     */      
  135. 135 .     public   static  Object[] getObjectArrayFromJson(String jsonString) {      
  136. 136 .        JSONArray jsonArray = JSONArray.fromObject(jsonString);      
  137. 137 .         return  jsonArray.toArray();      
  138. 138 .    }      
  139. 139 .     
  140. 140 .     
  141. 141 .     /**     
  142. 142.     * 把数据对象转换成json字符串     
  143. 143.     * DTO对象形如:{"id" : idValue, "name" : nameValue, ...}     
  144. 144.     * 数组对象形如:[{}, {}, {}, ...]     
  145. 145.     * map对象形如:{key1 : {"id" : idValue, "name" : nameValue, ...}, key2 : {}, ...}     
  146. 146.     * @param object     
  147. 147.     * @return     
  148. 148.     */      
  149. 149 .     public   static  String getJSONString(Object object)  throws  Exception{      
  150. 150 .        String jsonString =  null ;      
  151. 151 .         //日期值处理器       
  152. 152 .        JsonConfig jsonConfig =  new  JsonConfig();      
  153. 153 .        jsonConfig.registerJsonValueProcessor(java.util.Date. class new  JsonDateValueProcessor());      
  154. 154 .         if (object !=  null ){      
  155. 155 .             if (object  instanceof  Collection || object  instanceof  Object[]){      
  156. 156 .                jsonString = JSONArray.fromObject(object, jsonConfig).toString();      
  157. 157 .            } else {      
  158. 158 .                jsonString = JSONObject.fromObject(object, jsonConfig).toString();      
  159. 159 .            }      
  160. 160 .        }      
  161. 161 .         return  jsonString ==  null  ?  "{}"  : jsonString;      
  162. 162 .    }     
  163.   
  164. 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/madun/archive/2010/08/02/5782882.aspx   
  165.   
  166. 需要jar包:ezmorph-1.0 . 6 .jar,json-lib- 2.3 .jar  
  167.   
  168. 创建java对象:  
  169.   
  170. public   class  Address {  
  171.  private  String road;  
  172.  private  String streate;  
  173.  private  String provience;  
  174.  private  String no;  
  175.  public  String getRoad() {  
  176.   return  road;  
  177.  }  
  178.  public   void  setRoad(String road) {  
  179.   this .road = road;  
  180.  }  
  181.  public  String getStreate() {  
  182.   return  streate;  
  183.  }  
  184.  public   void  setStreate(String streate) {  
  185.   this .streate = streate;  
  186.  }  
  187.  public  String getProvience() {  
  188.   return  provience;  
  189.  }  
  190.  public   void  setProvience(String provience) {  
  191.   this .provience = provience;  
  192.  }  
  193.  public  String getNo() {  
  194.   return  no;  
  195.  }  
  196.  public   void  setNo(String no) {  
  197.   this .no = no;  
  198.  }  
  199. }  
  200.   
  201. 1 .将json对象转化为java对象  
  202.   
  203.  JSONObject jsonObject = JSONObject.fromObject("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"\"}" );  
  204.   Address Address  = (Address) JSONObject.toBean(jsonObject,Address.class );  
  205.   log.info(Address.getNo());  
  206.   log.info(Address.getStreate());  
  207.   log.info(Address.getProvience());  
  208.   log.info(Address.getRoad());  
  209.   
  210.    
  211.   
  212. 2 .将java对象转化为json对象  
  213.   
  214.    将java对象转化为json对象:  
  215.   
  216.     Address address = new  Address();  
  217.     address.setNo("104" );  
  218.     address.setProvience("陕西" );  
  219.     address.setRoad("高新路" );  
  220.     address.setStreate("" );  
  221.     JSONArray json = JSONArray.fromObject(address);  
  222.     log.info(json.toString());  
  223.   
  224.    
  225.   
  226.   将java对象list转化为json对象:   
  227.   
  228.   Address address = new  Address();  
  229.   address.setNo("104" );  
  230.   address.setProvience("陕西" );  
  231.   address.setRoad("高新路" );  
  232.   address.setStreate("" );  
  233.   Address address2 = new  Address();  
  234.   address2.setNo("105" );  
  235.   address2.setProvience("陕西" );  
  236.   address2.setRoad("未央路" );  
  237.   address2.setStreate("张办" );  
  238.   List list = new  ArrayList();  
  239.   list.add(address);  
  240.   list.add(address2);  
  241.   JSONArray json = JSONArray.fromObject(list);  
  242.   log.info(json.toString());  
  243.   
  244. 3 .JSONArray转化为list  
  245.   
  246. JSONObject jsonObject = JSONObject.fromObject("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"\"}" );  
  247.   JSONArray jsonArray = new  JSONArray();  
  248.   jsonArray.add("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"\"}" );  
  249.   jsonArray.add("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"123\"}" );  
  250.   Object object = JSONArray.toList(jsonArray,Address.class ); 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics