Java 操作 JSON

import java.util.*;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;
import org.apache.commons.lang.StringUtils;

public class JsonUtil
{

    /**
     * 从一个JSON 对象字符格式中得到一个java对象
     *
     * @param jsonString
     * @param pojoCalss
     * @return
     */
    public static Object jsonstrToObject(String jsonString, Class pojoCalss)
    {
        return JSONObject.toBean(JSONObject.fromObject(jsonString), pojoCalss);
    }
    public static Object jsonstrToObject(String jsonString, Class pojoCalss,Map map)
    {
        return JSONObject.toBean(JSONObject.fromObject(jsonString), pojoCalss,map);
    }

    /**
     * 从json HASH表达式中获取一个map,改map支持嵌套功能
     *
     * @param jsonString
     * @return
     */
    public static Map<String,Object> jsonstrToMap(String jsonString)
    {
        JSONObject jsonObject = JSONObject.fromObject(jsonString);
        Iterator keyIter = jsonObject.keys();
        String key;
        Object value;
        Map<String,Object> valueMap = new HashMap<String,Object>();

        while (keyIter.hasNext())
        {
            key = (String) keyIter.next();
            value = jsonObject.get(key);
            valueMap.put(key, value);
        }

        return valueMap;
    }

    public static String mapToString(Map map)
    {
        JSONObject json = JSONObject.fromObject(map);
        return json.toString();
    }
    public static String mapToStringNotNull(Map map)
    {
        if(map==null)
            return "";
        JsonConfig c = new JsonConfig();
        c.setJsonPropertyFilter(new IgnoreNullProcessor());
        JSONObject json = JSONObject.fromObject(map,c);
        return json.toString();
    }

    /**
     * 从json数组中得到相应java数组
     *
     * @param jsonString
     * @return
     */
    public static Object[] jsonstrToObjectArray(String jsonString)
    {
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        return jsonArray.toArray();   

    }

    /**
     * 从json对象集合表达式中得到一个java对象列表
     *
     * @param jsonString
     * @param pojoClass
     * @return
     */
    public static List jsonstrToList(String jsonString, Class pojoClass)
    {

        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        JSONObject jsonObject;
        Object pojoValue;

        List list = new ArrayList();
        for (int i = 0; i < jsonArray.size(); i++)
        {

            jsonObject = jsonArray.getJSONObject(i);
            pojoValue = JSONObject.toBean(jsonObject, pojoClass);
            list.add(pojoValue);

        }
        return list;

    }

    public static Object[] jsonstrToArray(String jsonString)
    {
        if(StringUtils.isBlank(jsonString))
            return null;
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        return jsonArray.toArray();
    }

    /**
     * 从json数组中解析出java字符串数组
     *
     * @param jsonString
     * @return
     */
    public static String[] jsonstrToStringArray(String jsonString)
    {

        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        String[] stringArray = new String[jsonArray.size()];
        for (int i = 0; i < jsonArray.size(); i++)
        {
            stringArray[i] = jsonArray.getString(i);

        }

        return stringArray;
    }

    /**
     * 从json数组中解析出javaLong型对象数组
     *
     * @param jsonString
     * @return
     */
    public static Long[] jsonStrToLongArray(String jsonString)
    {

        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        Long[] longArray = new Long[jsonArray.size()];
        for (int i = 0; i < jsonArray.size(); i++)
        {
            longArray[i] = jsonArray.getLong(i);

        }
        return longArray;
    }

    /**
     * 从json数组中解析出java Integer型对象数组
     *
     * @param jsonString
     * @return
     */
    public static Integer[] jsonStrToIntegerArray(String jsonString)
    {

        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        Integer[] integerArray = new Integer[jsonArray.size()];
        for (int i = 0; i < jsonArray.size(); i++)
        {
            integerArray[i] = jsonArray.getInt(i);

        }
        return integerArray;
    }

    /**
     * 从json数组中解析出java Date 型对象数组,使用本方法必须保证
     * @param jsonString
     * @return
     */
    /* public static Date[] jsonstrToDateArray(String jsonString,String DataFormat){

        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        Date[] dateArray = new Date[jsonArray.size()];
        String dateString;
        Date date;

        for( int i = 0 ; i<jsonArray.size() ; i++ ){
            dateString = jsonArray.getString(i);
            date = DateUtil.stringToDate(dateString, DataFormat);
            dateArray[i] = date;
        }
        return dateArray;
    }*/

    /**
     * 从json数组中解析出java Integer型对象数组
     *
     * @param jsonString
     * @return
     */
    public static Double[] jsonStrToDoubleArray(String jsonString)
    {

        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        Double[] doubleArray = new Double[jsonArray.size()];
        for (int i = 0; i < jsonArray.size(); i++)
        {
            doubleArray[i] = jsonArray.getDouble(i);

        }
        return doubleArray;
    }

    /**
     * 将java对象转换成json字符串
     *
     * @param javaObj
     * @return
     */
    public static String objectToString(Object javaObj)
    {

        JSONObject json;
        json = JSONObject.fromObject(javaObj);
        return json.toString();

    }

    public static String objectToStringNotNull(Object javaObj)
    {
        JsonConfig c = new JsonConfig();
        c.setJsonPropertyFilter(new IgnoreNullProcessor());

        JSONObject json = JSONObject.fromObject(javaObj, c);
        return json.toString();
    }

    public static String objectToStringNotNullZero(Object javaObj)
    {
        JsonConfig c = new JsonConfig();
        c.setJsonPropertyFilter(new IgnoreNullZeroProcessor());

        JSONObject json = JSONObject.fromObject(javaObj, c);
        return json.toString();
    }

    public static String arrayToString(Collection c)
    {
        return JSONArray.fromObject(c).toString();
    }
    public static String arrayToStringNotNull(Collection c)
    {
        JsonConfig config = new JsonConfig();
        config.setJsonPropertyFilter(new IgnoreNullProcessor());

        return JSONArray.fromObject(c,config).toString();
    }

    /**
     * 将java对象转换成json字符串,并设定日期格式
     *
     * @param javaObj
     * @param dataFormat
     * @return
     */
    public static String objectToJsonString(Object javaObj, String dataFormat)
    {

        JSONObject json;
        JsonConfig jsonConfig = configJson(dataFormat);
        json = JSONObject.fromObject(javaObj, jsonConfig);
        return json.toString();

    }

    /**
     * JSON 时间解析器具
     *
     * @param datePattern
     * @return
     */
    public static JsonConfig configJson(String datePattern)
    {
        JsonConfig jsonConfig = new JsonConfig();
        jsonConfig.setExcludes(new String[]{""});
        jsonConfig.setIgnoreDefaultExcludes(false);
        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
        jsonConfig.registerJsonValueProcessor(Date.class,
                new DateJsonValueProcessor(datePattern));

        return jsonConfig;
    }

    /**
     * @param excludes
     * @param datePattern
     * @return
     */
    public static JsonConfig configJson(String[] excludes,
                                        String datePattern)
    {
        JsonConfig jsonConfig = new JsonConfig();
        jsonConfig.setExcludes(excludes);
        jsonConfig.setIgnoreDefaultExcludes(false);
        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
        jsonConfig.registerJsonValueProcessor(Date.class,
                new DateJsonValueProcessor(datePattern));

        return jsonConfig;
    }

}
时间: 2024-10-11 08:19:26

Java 操作 JSON的相关文章

JAVA操作JSON格式数据

由于近些日子公司在弄微信项目,而微信官方API所提供的接口当中,有些需要以POST方式进行请求,且数据传输格式要求为JSON格式数据,之前没怎么研究过,而且传递的数据格式相对也比较简单,所以直接都是采用的字符串拼接的方式进行组装的,之后再用String.format格式化一下就好了. //需要提交的json数据 String jsonData = "{\"openid\":\"%s\",\"to_groupid\":%d}";

java操作Json数据

最近要使用java来操作Json数据,虽然Json用过几次,但一直没有好好总结,趁这次来总结一下java操作Json数据.Java操作Json有很多工具包,地址为http://www.json.org/,可以自己上去挑选. 这里我使用第一个org.json,最新源码地址为:https://github.com/douglascrockford/JSON-java,可以自己去下载,我也会在附件上传.下载源码后放进工程即可,包名为org.json 我们要操作的Json数据如下: {"total&qu

Java操作JSON数据(2)--Gson操作JSON数据

Gson是Google公司发布的一个开发源码的Java库,可用于将Java对象转换为JSON字符串,也可用于将JSON字符串转换为对应的Java对象.本介绍下Gson的基本使用方法,包括序列化和反序列化:文中所使用到的软件版本:Java 1.8.0_191.Gson 2.8.6. 1.引入依赖 <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactI

java操作json

import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class ReadJson { public static void main(String args[]) { JSONArray jsonarray; JSONObject jsonObj; // 读取JSONArray,用下标索引获取 String array = "[\"11\",\"22\",\"33

Java使用jackson操作Json格式数据

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,她是 JavaScript原生态的数据格式. 她独立于任何编程语言.可读性高.易于生成和解析.体积轻量,这些优雅的特性,让JSON成为非常理想的数据交换的语言. 原文地址: http://www.hpboys.com/616.html 在使用Java操作JSON时,我们用到了Jackson框架. Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Ja

JSON以及Java转换JSON的方法

本文主要讲述如下几个内容: 1.JSON定义以及JSON的特性 2.如何在JavaScript中解释JSON格式数据 3.如何在Java代码中使用JSON(讲对象转换成JSON对象以及解释JSON字符串) 一.JSON w3c上对JSON有比较详细的介绍,链接http://www.w3school.com.cn/json/index.asp.下面仅讲述重要的几点. Json是 JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式,具

Java之JSON操作(gson)

使用gson包操作JSON数据. 依赖包:gson-2.8.2.jar <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version></dependency> 代码如下: 1 package json.gson; 2 3 import java.util.Ar

js与java对json的操作

JSON呢,是现在大部分,并且主流的传递数据的方式. 今天讲一下javascript的java对json的操作 提到js,当下就有一个比较主流的插件,vue.js,这个插件程序员没用过也都听说过吧, 非常方便的一个js插件,像js对于json的操作比如说json的话直接可以点出来,像数据的话 data[0]需要给下标才能点出来, java呢处理json就比较复杂了 import org.json.JSON; 需要导一下包,对于已经toString的字符串 可以使用JSONObject obj =

Java和js操作json

Js中 Json字符串转json对象 //将json格式的字符串转为json对象 var t = JSON.parse('{"name":123}'); alert(t.name); json对象转json字符串 //json对象数组. //packJson 为对象数组 packJson = [ {"name":"nikita", "password":"1111"}, {"name":