776 views

Java操作json的通用类

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 它易于人阅读和编写,同时也易于程序解析和生成,相比XML它的体积更小。

下面给出一个java操作json的通用类,方便以后工程中调用,需要自己下载并引入JSON-lib包,JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。

import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public final class JSONUtil {

    // 将String转换成JSON
    public static String string2json(String key, String value) {
        JSONObject object = new JSONObject();
        object.put(key, value);
        return object.toString();
    }

    // 将JSON转换成数组,其中valueClz为数组中存放对象的Class
    public static Object json2Array(String json, Class valueClz) {
        JSONArray jsonArray = JSONArray.fromObject(json);
        return JSONArray.toArray(jsonArray, valueClz);
    }

    // 将数组转换成JSON
    public static String array2json(Object object) {
        JSONArray jsonArray = JSONArray.fromObject(object);
        return jsonArray.toString();
    }

    // 将Map转换成JSON
    public static String map2json(Object object) {
        JSONObject jsonObject = JSONObject.fromObject(object);
        return jsonObject.toString();
    }

    // 将JSON转换成Map,其中valueClz为Map中value的Class,keyArray为Map的key
    public static Map json2Map(Object[] keyArray, String json, Class valueClz) {
        JSONObject jsonObject = JSONObject.fromObject(json);
        Map classMap = new HashMap();

        for (int i = 0; i < keyArray.length; i++) {
            classMap.put(keyArray[i], valueClz);
        }
        return (Map) JSONObject.toBean(jsonObject, Map.class, classMap);
    }

    // 将POJO转换成JSON
    public static String bean2json(Object object) {
        JSONObject jsonObject = JSONObject.fromObject(object);
        return jsonObject.toString();
    }

    // 将JSON转换成POJO,其中beanClz为POJO的Class
    public static Object json2Object(String json, Class beanClz) {
        return JSONObject.toBean(JSONObject.fromObject(json), beanClz);
    }

    // 将JSON转换成String
    public static String json2String(String json, String key) {
        JSONObject jsonObject = JSONObject.fromObject(json);
        return jsonObject.get(key).toString();
    }
}

 

PS,有个Google有个完整而优雅的JSON包,叫GSON,很好用,下次去看看。

无觅相关文章插件,快速提升流量

Java操作json的通用类》上有 2 条评论

  1. Android好像有个自带的JSONObject和JSONArray…..不过这个很方便。

    对了,你用的插入代码的插件叫什么..?

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>