JSON字符串

来源:互联网 发布:java函数重载是指 编辑:程序博客网 时间:2024/06/08 06:10

json和xml比较

json字符串表示的是键值对字符串,和xml有很多相似之处

xml例子

<?xml version="1.0" encoding="utf-8"?>
<country>
    <name>中国</name>
    <province>
        <name>黑龙江</name>
        <cities>
            <city>哈尔滨</city>
            <city>大庆</city>
        </cities>
    </province>
    <province>
        <name>广东</name>
        <cities>
            <city>广州</city>
            <city>深圳</city>
            <city>珠海</city>
        </cities>
    </province>
    <province>
        <name>台湾</name>
        <cities>
            <city>台北</city>
            <city>高雄</city>
        </cities>
    </province>
    <province>
        <name>新疆</name>
        <cities>
            <city>乌鲁木齐</city>
        </cities>
    </province>
</country>
json例子

{
    "name": "中国",
    "province": [{
        "name": "黑龙江",
        "cities": {
            "city": ["哈尔滨", "大庆"]
        }
    }, {
        "name": "广东",
        "cities": {
            "city": ["广州", "深圳", "珠海"]
        }
    }, {
        "name": "台湾",
        "cities": {
            "city": ["台北", "高雄"]
        }
    }, {
        "name": "新疆",
        "cities": {
            "city": ["乌鲁木齐"]
        }
    }]
}



java

使用json-lib-2.1-jdk15.jar包


/**

     * 将普通对象转换成JSON数据

     * 

     * @return String

     */

    public static String objectToJson(Object object) {

        JSONObject jsonObject = JSONObject.fromObject(object);

        return jsonObject.toString();

    }

/**

     * 将JSON数据转换成类对象

     * 

     * @return Object

     */

    @SuppressWarnings("unchecked")

    public static Object jsonToObject(String jsonString, Class beanClass) {

        JSONObject jsonObject = JSONObject.fromObject(jsonString);

        Object object = JSONObject.toBean(jsonObject, beanClass);



        return object;

    }

    /**

     * 将List对象转换成JSON数据

     * 

     * @return String

     */

    @SuppressWarnings("unchecked")

    public static String objectListToJson(List list) {

        JSONArray object = JSONArray.fromObject(list);

        return object.toString();

    }

    /**

     * 将JSON数据转换成List对象

     * 

     * @return List

     */

    @SuppressWarnings({ "unchecked" })

    public static List jsonToObjectList(String jsonString, Class entityClass) {

        JSONArray jsonArray = JSONArray.fromObject(jsonString);

        List objectList = new ArrayList();

        for (Iterator iter = jsonArray.iterator(); iter.hasNext();) {

            JSONObject jsonObject = (JSONObject) iter.next();

            objectList.add(JSONObject.toBean(jsonObject, entityClass));

        }

        return objectList;

    }

    /**

     * 

     * 将JSON数据转换成List对象,转换有日期格式的

     * @return List

     * 结果集

     * @param jsonString

     * json字符串

     * @param entityClass

     * 转对象

     * @param dataFormats

     * 日期格式数组

     * @author wr

     */

    @SuppressWarnings({ "unchecked" })

public static List jsonToObjectList(String jsonString, Class entityClass,String[] dataFormats) {

        JSONArray jsonArray = JSONArray.fromObject(jsonString);

        List objectList = new ArrayList();

        for (Iterator iter = jsonArray.iterator(); iter.hasNext();) {

            JSONObject jsonObject = (JSONObject) iter.next();

            JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dataFormats));

            objectList.add(JSONObject.toBean(jsonObject, entityClass));

        }

        return objectList;

    }


    /**

     * 

     * @Title: jsonToMaps

     * @Description: json 字符串 转map

     * @param jsonStr

     * @return

     * @author wr

     * @since 2016-10-26上午11:00:07

     */

    @SuppressWarnings({ "unchecked" })

public static List<Map> jsonToMaps(String jsonStr){

    JSONArray jsonArray = JSONArray.fromObject(jsonStr);

        List objectList = new ArrayList();

        Map map = null;

        for (Iterator iter = jsonArray.iterator(); iter.hasNext();) {

        map = new HashMap(); 

            JSONObject jsonObject = (JSONObject) iter.next();

            for (Iterator iters = jsonObject.keys(); iters.hasNext();) {   

                String key = (String) iters.next();   

                map.put(key, jsonObject.get(key));   

            }   

            objectList.add(map);

        }

        return objectList;  

    }

    /**

     * json 转成对应的map

     * @param jsonString

     * @return

     */

    @SuppressWarnings({ "unchecked" })

public static Map jsonToMap(String jsonString) {

        JSONObject jsonObject = JSONObject.fromObject(jsonString);

        Map map = null;

        map = new HashMap(); 

        for (Iterator iters = jsonObject.keys(); iters.hasNext();) {   

            String key = (String) iters.next();   

            map.put(key, jsonObject.get(key));   

        }   

        return map;

    }

   /**

     * 

     * @Title: parseToMap

     * @Description:

     * <font color="red">json字符串转map集合</font><br/>

     * @param jsonStr

     * @return List<Map<String, Object>>

     * @author wr

     * @since 2015-1-7, 下午02:27:32

     */

    @SuppressWarnings("unchecked")

public static List<Map<String, Object>> parseToMap(String jsonStr) {

    JSONArray jsonArray = JSONArray.fromObject(jsonStr);  

    List<Map<String,Object>> mapListJson = (List)jsonArray;  

    return mapListJson;

}


    /**

     * 检查JSON对象中是否包含某一键值

     * 

     * @param jsonString

     *            JSON对象

     * @param key

     *            键值名称

     * @return boolean

     */

    public static boolean jsonContainsKey(String jsonString, String keyName) {

        JSONObject jsonObject = JSONObject.fromObject(jsonString);

        return jsonObject.containsKey(keyName);

    }

js

var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的

var json = '{"a": "Hello", "b": "World"}'//这是一个 JSON 字符串,本质是一个字符串

// 对象转换成json字符串

var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'

// json字符串转换成对象
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}


原创粉丝点击