zoukankan      html  css  js  c++  java
  • JSON的使用

    最近在项目中大量的使用了JSON, 发现JSON和XML的功能相近,都是一种数据传输格式。只是与XML相比JSON显得更加轻量级,使用也更加容易。

    JSON依赖的第三方jar包:  

      commons-beanutils.jar
      commons-collection.jar
      commons-lang.jar
      commons-logging.jar
      ezmorph-1.0.6.jar
      json-lib-2.4-jdk15.jar

    总结发现JSON字符串与Java对象的相互转换有以下三种情况:

      (1)Java Bean对象与JSON字符串的相互转换

      (2)Java 数组与JSON字符串的相互转换

      (3)Java List与JSON字符串的相互转换

    下面是我写的一个JSON工具类:

     1 package nuc.wss.util;
     2 
     3 import java.util.List;
     4 
     5 import net.sf.json.JSONArray;
     6 import net.sf.json.JSONObject;
     7 
     8 /**
     9  * 
    10  * JsonUtil类的静态方法封装了Java对象与JSON字符串相互转换的操作
    11  */
    12 public class JsonUtil {
    13     /**
    14      * 将JSON字符串转化为Java对象
    15      * 
    16      * @param jsonString      JSON字符串
    17      * @param clazz           Java对象对应的class
    18      * @return                 返回Java对象
    19      */
    20     @SuppressWarnings("rawtypes")
    21     public static Object jsonStringToBean(String jsonString, Class clazz) {
    22         JSONObject jsonObject = JSONObject.fromObject(jsonString);
    23         return JSONObject.toBean(jsonObject, clazz);        
    24     }
    25     
    26     /**
    27      * 将Bean对象转化为JSON字符串
    28      * 
    29      * @param object      将被转化的对象
    30      * @return             返回转化后的JSON字符串
    31      */
    32     public static String beanToJsonString(Object object) {
    33         return JSONObject.fromObject(object).toString();
    34     }
    35     
    36     /**
    37      * 将JSON字符串转化List
    38      * 
    39      * @param jsonArrayString  被转化的JSON字符串
    40      * @param clazz            List的类型参数所对应的类
    41      * @return                 返回List对象
    42      */
    43     @SuppressWarnings("rawtypes")
    44     public static List jsonArrayStringToList(String jsonArrayString, Class clazz) {
    45         JSONArray jsonArray = JSONArray.fromObject(jsonArrayString);
    46         return (List)JSONArray.toCollection(jsonArray, clazz);
    47     }
    48     
    49     /**
    50      * 将List对象转化为JSON字符串
    51      * 
    52      * @param list    将被转化的List对象
    53      * @return       返回JSON字符串
    54      */
    55     @SuppressWarnings("rawtypes")
    56     public static String listToJsonArrayString(List list) {
    57         return JSONArray.fromObject(list).toString();
    58     }
    59     
    60     /**
    61      * 将JSON字符串转化为Java数组
    62      * 
    63      * @param jsonArrayString    被转化的JSON的字符串
    64      * @param clazz              数组类型对应的类
    65      * @return                   数组
    66      */
    67     @SuppressWarnings("rawtypes")
    68     public static Object[] jsonArrayStringToArray(String jsonArrayString, Class clazz) {
    69         JSONArray jsonArray = JSONArray.fromObject(jsonArrayString);
    70         return (Object[])JSONArray.toArray(jsonArray, clazz);
    71     }
    72     
    73     /**
    74      * 将Java数组转化为JSON字符串
    75      * 
    76      * @param array    被转化的数组
    77      * @return        JSON字符串
    78      */
    79     public static String arrayToJsonArrayString(Object[] array) {
    80         return JSONArray.fromObject(array).toString();
    81     }
    82 }
  • 相关阅读:
    redis存储session配制方法
    thanks使用注意事项;
    mongodb sort limit和skip用法
    mongoose的用法(注:连接数据库)
    mongoose查询特定时间段文档的方法
    webworker的使用案例
    js 传参数
    redis.config翻译
    Oracle keep详解
    自学之笔记总结
  • 原文地址:https://www.cnblogs.com/wss-is-knight/p/3960578.html
Copyright © 2011-2022 走看看