`
u012081441
  • 浏览: 15728 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Json转化工具类

阅读更多
package com.rest.ful.utils;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;



/**
 * Json工具类
 * @author  zlzhaoe
 * @version [版本号, 2017年5月8日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public class JsonUtils
{

    private static SerializeConfig mapping = new SerializeConfig();

    private static String dateFormat;
    static
    {
        dateFormat = "yyyy-MM-dd HH:mm:ss";
        mapping.put(Date.class, new SimpleDateFormatSerializer(dateFormat));
    }

    /**
     * 
     * <把任意对象转换为json字符串 >
     * 
     * @param obj 任意对象
     * @return json字符串
     */
    public static String object2json(Object obj)
    {
        if (obj == null)
        {
            return "{}";
        }
        return JSON.toJSONString(obj, mapping);
    }

    /**
     * 
     * <把bean对象转换为json字符串>
     * 
     * @param bean bean对象
     * @return json字符串
     */
    public static String bean2json(Object bean)
    {
        return object2json(bean);
    }

    /**
     * 
     * <把list对象转换为json字符串>
     * 
     * @param list list对象
     * @return json字符串
     */
    public static String list2json(List<?> list)
    {
        return object2json(list);
    }

    /**
     * 
     * <把数组对象转换为json字符串>
     * 
     * @param array 数组对象
     * @return json字符串
     */
    public static String array2json(Object[] array)
    {
        return object2json(array);
    }

    /**
     * 
     * <把数组对象转换为json字符串>
     * 
     * @param map map对象
     * @return json字符串
     */
    public static String map2json(Map<?, ?> map)
    {
        return object2json(map);
    }

    /**
     * 
     * <把set对象转换为json字符串>
     * 
     * @param set set对象
     * @return json字符串
     */
    public static String set2json(Set<?> set)
    {
        return object2json(set);
    }

    /**
     * 
     * <把String对象转换为json字符串>
     * 
     * @param s String对象
     * @return json字符串
     */
    public static String string2json(String s)
    {
        if (null == s)
        {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++)
        {
            char ch = s.charAt(i);
            switch (ch)
            {
                case '"':
                    sb.append("\\\\\"");
                    break;
                case '\\':
                    sb.append("\\\\");
                    break;
                case '\b':
                    sb.append("\\b");
                    break;
                case '\f':
                    sb.append("\\f");
                    break;
                case '\n':
                    sb.append("\\n");
                    break;
                case '\r':
                    sb.append("\\r");
                    break;
                case '\t':
                    sb.append("\\t");
                    break;
                case '/':
                    sb.append("\\/");
                    break;
                default:
                    if (ch >= '\u0000' && ch <= '\u001F')
                    {
                        String ss = Integer.toHexString(ch);
                        sb.append("\\u");
                        for (int k = 0; k < 4 - ss.length(); k++)
                        {
                            sb.append('0');
                        }
                        sb.append(ss.toUpperCase());
                    }
                    else
                    {
                        sb.append(ch);
                    }
            }
        }
        return sb.toString();
    }

    public static List<Map<String, Object>> parseJSON2List(String jsonStr)
    {
        JSONArray jsonArr = JSONArray.parseArray(jsonStr);
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        Iterator<Object> it = jsonArr.iterator();
        while (it.hasNext())
        {
            JSONObject json2 = JSONObject.parseObject(JSON.toJSONString(it.next(), mapping));
            list.add(parseJSON2Map(json2.toString()));
        }
        return list;
    }

    public static Map<String, Object> parseJSON2Map(String jsonStr)
    {
        Map<String, Object> map = new HashMap<String, Object>();
        // 最外层解析
        JSONObject json = JSONObject.parseObject(jsonStr);
        for (Object k : json.keySet())
        {
            Object v = json.get(k);
            // 如果内层还是数组的话,继续解析
            if (v instanceof JSONArray)
            {
                List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
                Iterator<Object> it = ((JSONArray)v).iterator();
                while (it.hasNext())
                {
                    JSONObject json2 = JSONObject.parseObject(JSON.toJSONString(it.next(), mapping));
                    list.add(parseJSON2Map(json2.toString()));
                }
                map.put(k.toString(), list);
            }
            else
            {
                map.put(k.toString(), v);
            }
        }
        return map;
    }

    public static List<Map<String, Object>> getListByUrl(String url)
    {
        try
        {
            // 通过HTTP获取JSON数据
            InputStream in = new URL(url).openStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            StringBuilder sb = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null)
            {
                sb.append(line);
            }
            return parseJSON2List(sb.toString());
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }

    public static void main(String[] a)
    {
        List<Object> list = new ArrayList<Object>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(new Date());
        list.add(15);
        String aa = JSON.toJSONString(list, mapping);
        System.out.println(aa);
    }
}

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

分享到:
评论

相关推荐

    json 转化工具类

    在Java编程中,我们经常需要将JSON字符串转化为Java对象,或者将Java对象转化为JSON字符串,这时就需要用到JSON转化工具类。这个"json 转化工具类"就是为了解决这样的问题。 在Java中,有很多流行的库可以处理JSON...

    JSON转化工具类 JSONParser.zip

    JSON转化工具类 JSONParser ,iOS数据转化组件 (JSONParser),支持JSON字符串、模型、字典、模型数组、字典数组之间...

    json转化工具类

    实现数据从对象到json的转化,简化数据转换的操作,加快开发效率

    Xml和Json互转工具类

    本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。

    JAVA-JSON工具转换类

    在处理JSON时,可能需要将JSON解析得到的数据转换成特定的对象类型,或者将Java对象转换成适合JSON格式的数据,这时候`ezmorph`就可以派上用场。它可以方便地将一种类型的数据转换成另一种类型,比如将字符串转成...

    json与xml互相转换工具类

    json与xml互相转换工具类

    json解析工具类

    总之,JSON解析工具类是开发中不可或缺的部分,它简化了JSON与Java对象之间的转换,提高了代码的可读性和可维护性。了解并熟练使用这样的工具类,能够使你在处理JSON数据时更加得心应手。在选择具体的实现库时,需要...

    Json处理工具类

    ### Json处理工具类知识点 #### 一、简介 在Java编程中,经常需要对JSON数据进行解析、构建或转换等操作。为此,本知识点将基于提供的文件内容介绍一个实用的`JsonHandle`类,该类封装了多个用于处理JSON字符串的...

    json-lib 解析json串工具类

    这个工具类“json-lib 解析json串工具类”就是专门为了解析JSON字符串而设计的,它能够帮助开发者有效地将JSON数据转换为Java对象,反之亦然。 1. **JSON对象与Java对象的映射** `json-lib`库支持将JSON对象转换为...

    工具类---实现实体类与Json的转换

    工具类---实现实体类与Json的转换

    JSON对象转换工具类

    ### JSON对象转换工具类 #### 简介 在Java开发过程中,经常需要处理JSON格式的数据,例如从前端接收到的请求数据、第三方接口返回的数据等。为了方便地进行JSON与Java对象之间的转换,通常会封装一个JSON工具类。...

    map,list转成json的工具类

    本篇将详细介绍如何使用两个Java工具类,`JackSonUtil` 和 `GsonUtil`,将Map和List对象转换为JSON字符串。 首先,`JackSonUtil` 是基于Jackson库的一个工具类,Jackson是Java中最流行的JSON处理库之一,提供了高效...

    json转换工具类

    对于json字符串的转化和解析,提供的工具类!

    json转换工具jackson

    - **序列化**: Jackson 提供了 `ObjectMapper` 类,通过 `writeValueAsString()` 或 `writeValueAsBytes()` 方法可以将Java对象转换成JSON字符串或字节数组。 - **反序列化**: 使用 `readValue()` 方法,可以将...

    JsonUtils(Json转换工具类)

    《JsonUtils:强大的Json转换工具类》 在Java开发中,JSON作为一种轻量级的数据交换格式,被广泛用于服务器与客户端之间的数据传输。为了方便开发者处理JSON格式的数据,出现了许多库,如Jackson、Gson、Fastjson等...

    Json转换成C#实体类工具

    这就是"Json转换成C#实体类工具"所解决的问题。 这个工具的主要功能是自动化地将JSON格式的数据转换为C#的类定义,极大地提高了开发效率。开发者无需手动编写对应的C#模型代码,只需提供JSON字符串或文件,工具就能...

    json数据转换工具类

    bean转json字符串,JSONArray对象转换成list集合,json字符串转换成list集合,JSONObject转换成map对象,json字符串转换成map对象等等各种方法

    Json一键转Javabean工具

    "Json一键转Javabean工具"是一个实用的开发辅助工具,它能够帮助Java开发者快速地将JSON格式的数据转换成对应的JavaBean对象,极大地提高了开发效率。 JSON转换为JavaBean的过程通常包括以下步骤: 1. **解析JSON...

    bean,json工具类

    2. **JSON到Bean转换**:相反,工具类也可能提供从JSON字符串反序列化成指定类型的Bean对象的功能。例如,如果JSON字符串符合某个Bean类的结构,可以使用`ObjectMapper.readValue(String json, Class&lt;T&gt; beanClass)`...

    json jackson 工具类

    在这个“json jackson 工具类”中,我们看到对Jackson进行了封装,以便更方便地进行字符串与JSON对象之间的转换,包括对简单对象和复杂对象的支持。 Jackson库主要由以下组件组成: 1. `...

Global site tag (gtag.js) - Google Analytics