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>
相关推荐
在Java编程中,我们经常需要将JSON字符串转化为Java对象,或者将Java对象转化为JSON字符串,这时就需要用到JSON转化工具类。这个"json 转化工具类"就是为了解决这样的问题。 在Java中,有很多流行的库可以处理JSON...
JSON转化工具类 JSONParser ,iOS数据转化组件 (JSONParser),支持JSON字符串、模型、字典、模型数组、字典数组之间...
实现数据从对象到json的转化,简化数据转换的操作,加快开发效率
本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。
在处理JSON时,可能需要将JSON解析得到的数据转换成特定的对象类型,或者将Java对象转换成适合JSON格式的数据,这时候`ezmorph`就可以派上用场。它可以方便地将一种类型的数据转换成另一种类型,比如将字符串转成...
json与xml互相转换工具类
总之,JSON解析工具类是开发中不可或缺的部分,它简化了JSON与Java对象之间的转换,提高了代码的可读性和可维护性。了解并熟练使用这样的工具类,能够使你在处理JSON数据时更加得心应手。在选择具体的实现库时,需要...
### Json处理工具类知识点 #### 一、简介 在Java编程中,经常需要对JSON数据进行解析、构建或转换等操作。为此,本知识点将基于提供的文件内容介绍一个实用的`JsonHandle`类,该类封装了多个用于处理JSON字符串的...
这个工具类“json-lib 解析json串工具类”就是专门为了解析JSON字符串而设计的,它能够帮助开发者有效地将JSON数据转换为Java对象,反之亦然。 1. **JSON对象与Java对象的映射** `json-lib`库支持将JSON对象转换为...
工具类---实现实体类与Json的转换
### JSON对象转换工具类 #### 简介 在Java开发过程中,经常需要处理JSON格式的数据,例如从前端接收到的请求数据、第三方接口返回的数据等。为了方便地进行JSON与Java对象之间的转换,通常会封装一个JSON工具类。...
《JsonUtils:强大的Json转换工具类》 在Java开发中,JSON作为一种轻量级的数据交换格式,被广泛用于服务器与客户端之间的数据传输。为了方便开发者处理JSON格式的数据,出现了许多库,如Jackson、Gson、Fastjson等...
对于json字符串的转化和解析,提供的工具类!
- **序列化**: Jackson 提供了 `ObjectMapper` 类,通过 `writeValueAsString()` 或 `writeValueAsBytes()` 方法可以将Java对象转换成JSON字符串或字节数组。 - **反序列化**: 使用 `readValue()` 方法,可以将...
这就是"Json转换成C#实体类工具"所解决的问题。 这个工具的主要功能是自动化地将JSON格式的数据转换为C#的类定义,极大地提高了开发效率。开发者无需手动编写对应的C#模型代码,只需提供JSON字符串或文件,工具就能...
bean转json字符串,JSONArray对象转换成list集合,json字符串转换成list集合,JSONObject转换成map对象,json字符串转换成map对象等等各种方法
"Json一键转Javabean工具"是一个实用的开发辅助工具,它能够帮助Java开发者快速地将JSON格式的数据转换成对应的JavaBean对象,极大地提高了开发效率。 JSON转换为JavaBean的过程通常包括以下步骤: 1. **解析JSON...
2. **JSON到Bean转换**:相反,工具类也可能提供从JSON字符串反序列化成指定类型的Bean对象的功能。例如,如果JSON字符串符合某个Bean类的结构,可以使用`ObjectMapper.readValue(String json, Class<T> beanClass)`...
在这个“json jackson 工具类”中,我们看到对Jackson进行了封装,以便更方便地进行字符串与JSON对象之间的转换,包括对简单对象和复杂对象的支持。 Jackson库主要由以下组件组成: 1. `...
它能够将JSON对象转换成更紧凑的二进制表示,从而节省存储空间和提高处理速度。在软件开发过程中,这样的工具非常有用,尤其是在处理大量结构化数据时。 JSON转换工具通常包含以下功能: 1. **解析JSON**: 工具...