Json与javaBean之间的转换工具类

Json与javaBean之间的转换工具类    
001import java.lang.reflect.Field;
002import java.util.ArrayList;
003import java.util.HashMap;
004import java.util.Iterator;
005import java.util.List;
006import java.util.Map;
007import java.util.Set;
008  
009import net.sf.json.JSONArray;
010import net.sf.json.JSONObject;
011import net.sf.json.JsonConfig;
012  
013/**
014 * Json与javaBean之间的转换工具类
015 
016 * @author 晚风工作室 www.soservers.com
017 * @version 20111221
018 
019 * {@code   现使用json-lib组件实现
020 *          需要
021 *              json-lib-2.4-jdk15.jar
022 *              ezmorph-1.0.6.jar
023 *              commons-collections-3.1.jar
024 *              commons-lang-2.0.jar
025 *          支持
026 * }
027 */
028public class JsonPluginsUtil {
029  
030  
031    /**  
032     * 从一个JSON 对象字符格式中得到一个java对象  
033     *   
034     * @param jsonString  
035     * @param beanCalss  
036     * @return  
037     */
038    @SuppressWarnings("unchecked")
039    public static <T> T jsonToBean(String jsonString, Class<T> beanCalss) {
040          
041        JSONObject jsonObject = JSONObject.fromObject(jsonString);
042        T bean = (T) JSONObject.toBean(jsonObject, beanCalss);
043          
044        return bean;
045          
046    }
047  
048    /**  
049     * 将java对象转换成json字符串  
050     *
051     * @param bean  
052     * @return  
053     */
054    public static String beanToJson(Object bean) {
055  
056        JSONObject json = JSONObject.fromObject(bean);
057          
058        return json.toString();
059  
060    }
061      
062    /**  
063     * 将java对象转换成json字符串  
064     *
065     * @param bean  
066     * @return  
067     */
068    public static String beanToJson(Object bean, String[] _nory_changes, boolean nory) {
069  
070        JSONObject json = null;
071          
072        if(nory){//转换_nory_changes里的属性
073              
074            Field[] fields = bean.getClass().getDeclaredFields();
075            String str = "";
076            for(Field field : fields){
077//              System.out.println(field.getName());
078                str+=(":"+field.getName());
079            }
080            fields = bean.getClass().getSuperclass().getDeclaredFields();
081            for(Field field : fields){
082//              System.out.println(field.getName());
083                str+=(":"+field.getName());
084            }
085            str+=":";
086            for(String s : _nory_changes){
087                str = str.replace(":"+s+":", ":");
088            }
089            json = JSONObject.fromObject(bean,configJson(str.split(":")));
090              
091        }else{//转换除了_nory_changes里的属性
092              
093  
094              
095            json = JSONObject.fromObject(bean,configJson(_nory_changes));
096        }
097          
098          
099          
100        return json.toString();
101  
102    }
103     private static JsonConfig configJson(String[] excludes) {   
104  
105                JsonConfig jsonConfig = new JsonConfig();   
106  
107                jsonConfig.setExcludes(excludes);   
108//
109                jsonConfig.setIgnoreDefaultExcludes(false);   
110//
111//              jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);   
112  
113//              jsonConfig.registerJsonValueProcessor(Date.class,   
114//
115//                  new DateJsonValueProcessor(datePattern));   
116  
117                
118  
119                return jsonConfig;   
120  
121            }  
122  
123  
124  
125  
126  
127    /**
128     * 将java对象List集合转换成json字符串  
129     * @param beans
130     * @return
131     */
132    @SuppressWarnings("unchecked")
133    public static String beanListToJson(List beans) {
134          
135        StringBuffer rest = new StringBuffer();
136          
137        rest.append("[");
138          
139        int size = beans.size();
140          
141        for (int i = 0; i < size; i++) {
142              
143            rest.append(beanToJson(beans.get(i))+((i<size-1)?",":""));
144  
145        }
146          
147        rest.append("]");
148          
149        return rest.toString();
150  
151    }
152      
153    /**
154     
155     * @param beans
156     * @param _no_changes
157     * @return
158     */
159    @SuppressWarnings("unchecked")
160    public static String beanListToJson(List beans, String[] _nory_changes, boolean nory) {
161          
162        StringBuffer rest = new StringBuffer();
163          
164        rest.append("[");
165          
166        int size = beans.size();
167          
168        for (int i = 0; i < size; i++) {
169            try{
170                rest.append(beanToJson(beans.get(i),_nory_changes,nory));
171                if(i<size-1){
172                    rest.append(",");
173                }
174            }catch(Exception e){
175                e.printStackTrace();
176            }
177        }
178          
179        rest.append("]");
180          
181        return rest.toString();
182  
183    }
184  
185    /**  
186     * 从json HASH表达式中获取一个map,改map支持嵌套功能  
187     *
188     * @param jsonString  
189     * @return  
190     */
191    @SuppressWarnings({ "unchecked" })
192    public static Map jsonToMap(String jsonString) {
193          
194        JSONObject jsonObject = JSONObject.fromObject(jsonString);
195        Iterator keyIter = jsonObject.keys();
196        String key;
197        Object value;
198        Map valueMap = new HashMap();
199  
200        while (keyIter.hasNext()) {
201              
202            key = (String) keyIter.next();
203            value = jsonObject.get(key).toString();
204            valueMap.put(key, value);
205              
206        }
207  
208        return valueMap;
209    }
210      
211    /**
212     * map集合转换成json格式数据
213     * @param map
214     * @return
215     */
216    public static String mapToJson(Map<String, ?> map, String[] _nory_changes, boolean nory){
217          
218        String s_json = "{";
219          
220         Set<String> key = map.keySet();
221         for (Iterator<?> it = key.iterator(); it.hasNext();) {
222             String s = (String) it.next();
223             if(map.get(s) == null){
224                   
225             }else if(map.get(s) instanceof List<?>){
226                 s_json+=(s+":"+JsonPluginsUtil.beanListToJson((List<?>)map.get(s), _nory_changes, nory));
227                  
228             }else{
229                 JSONObject json = JSONObject.fromObject(map);
230                 s_json += (s+":"+json.toString());;
231             }
232               
233             if(it.hasNext()){
234                 s_json+=",";
235             }
236        }
237  
238         s_json+="}";
239        return s_json; 
240    }
241  
242    /**  
243     * 从json数组中得到相应java数组  
244     *
245     * @param jsonString  
246     * @return  
247     */
248    public static Object[] jsonToObjectArray(String jsonString) {
249          
250        JSONArray jsonArray = JSONArray.fromObject(jsonString);
251          
252        return jsonArray.toArray();
253  
254    }
255      
256    public static String listToJson(List<?> list) {
257          
258        JSONArray jsonArray = JSONArray.fromObject(list);
259          
260        return jsonArray.toString();
261  
262    }
263  
264    /**  
265     * 从json对象集合表达式中得到一个java对象列表  
266     *
267     * @param jsonString  
268     * @param beanClass  
269     * @return  
270     */
271    @SuppressWarnings("unchecked")
272    public static <T> List<T> jsonToBeanList(String jsonString, Class<T> beanClass) {
273  
274        JSONArray jsonArray = JSONArray.fromObject(jsonString);
275        JSONObject jsonObject;
276        T bean;
277        int size = jsonArray.size();
278        List<T> list = new ArrayList<T>(size);
279  
280        for (int i = 0; i < size; i++) {
281  
282            jsonObject = jsonArray.getJSONObject(i);
283            bean = (T) JSONObject.toBean(jsonObject, beanClass);
284            list.add(bean);
285  
286        }
287          
288        return list;
289  
290    }
291  
292    /**  
293     * 从json数组中解析出java字符串数组  
294     *
295     * @param jsonString  
296     * @return  
297     */
298    public static String[] jsonToStringArray(String jsonString) {
299  
300        JSONArray jsonArray = JSONArray.fromObject(jsonString);
301        String[] stringArray = new String[jsonArray.size()];
302        int size = jsonArray.size();
303  
304        for (int i = 0; i < size; i++) {
305  
306            stringArray[i] = jsonArray.getString(i);
307  
308        }
309  
310        return stringArray;
311    }
312  
313    /**  
314     * 从json数组中解析出javaLong型对象数组  
315     *
316     * @param jsonString  
317     * @return  
318     */
319    public static Long[] jsonToLongArray(String jsonString) {
320  
321        JSONArray jsonArray = JSONArray.fromObject(jsonString);
322        int size = jsonArray.size();
323        Long[] longArray = new Long[size];
324          
325        for (int i = 0; i < size; i++) {
326              
327            longArray[i] = jsonArray.getLong(i);
328  
329        }
330          
331        return longArray;
332          
333    }
334  
335    /**  
336     * 从json数组中解析出java Integer型对象数组  
337     *
338     * @param jsonString  
339     * @return  
340     */
341    public static Integer[] jsonToIntegerArray(String jsonString) {
342  
343        JSONArray jsonArray = JSONArray.fromObject(jsonString);
344        int size = jsonArray.size();
345        Integer[] integerArray = new Integer[size];
346          
347        for (int i = 0; i < size; i++) {
348              
349            integerArray[i] = jsonArray.getInt(i);
350  
351        }
352          
353        return integerArray;
354          
355    }
356  
357    /**  
358     * 从json数组中解析出java Double型对象数组  
359     *
360     * @param jsonString  
361     * @return  
362     */
363    public static Double[] jsonToDoubleArray(String jsonString) {
364  
365        JSONArray jsonArray = JSONArray.fromObject(jsonString);
366        int size = jsonArray.size();
367        Double[] doubleArray = new Double[size];
368          
369        for (int i = 0; i < size; i++) {
370              
371            doubleArray[i] = jsonArray.getDouble(i);
372  
373        }
374          
375        return doubleArray;
376          
377    }
378  
379}

2. [文件] json-lib-2.1.jar ~ 122KB     下载(54)     [全屏预览]

3. [文件] ezmorph-1.0.6.jar ~ 84KB     下载(53)     [全屏预览]

4. [文件] commons-collections-3.2.jar ~ 558KB     下载(63)     [全屏预览]

5. [文件] commons-lang-2.5.jar ~ 273KB     下载(49)     [全屏预览]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值