public class JsonUtils {

public static void printTimeObject(Object obj, HttpServletResponse response, JsonConfig jsonConfig) throws IOException {
JSONObject jsonObject = JSONObject.fromObject(obj, jsonConfig);
setContentType(response);
response.getWriter().print(jsonObject.toString());
}

public static void printObject(Object obj, HttpServletResponse response) throws IOException {
JSONObject jsonObject = JSONObject.fromObject(obj);
setContentType(response);
response.getWriter().print(jsonObject.toString());
}

/**
*
* @param value
* @param response
* @throws IOException
*/
public static void printString(String value, HttpServletResponse response) throws IOException {
JSONObject jsonObject = new JSONObject();
jsonObject.put("value", value);
JsonUtils.setContentType(response);
response.getWriter().print(jsonObject);
}

@SuppressWarnings("unchecked")
public static void printArray(List list, HttpServletResponse response) throws IOException {
JSONArray json = JSONArray.fromObject(list);
setContentType(response);
response.getWriter().print(json.toString());
}

/**
* @param response
*/
private static void setContentType(HttpServletResponse response) {
response.setContentType("text/html;charset=UTF-8");
}

@SuppressWarnings("unused")
public static String readJSONStringFromRequest(HttpServletRequest request){
StringBuffer json = new StringBuffer();
String line = null;
String result = "";
try {
request.setCharacterEncoding("UTF-8");
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8"));
while((line = reader.readLine()) != null) {
json.append(line);
}
result = java.net.URLDecoder.decode(json.toString(), "UTF-8");
System.out.println(result);
}
catch(Exception e) {
System.out.println(e.toString());
}
return result;
}

public static String readJSONString(HttpServletRequest request){
String result = "";
try {
InputStream in = request.getInputStream();
int len = request.getContentLength();
if (len <= 0) len = 2048;
byte[] tmp = new byte[2048];
byte[] buffer = new byte[len];
int totalLen = 0;
while (true) {
int readLen = in.read(tmp, 0, 2048);
if (readLen <= 0) break;
if ((readLen + totalLen) > len) {
len = len + readLen + 2048; // 扩大缓冲区
byte[] aa = new byte[len];
System.arraycopy(buffer, 0, aa, 0, totalLen);
buffer = aa;
}
System.arraycopy(tmp, 0, buffer, totalLen, readLen);
totalLen = totalLen + readLen;
}
result = new String(buffer,"UTF-8");
}catch(Exception e) {
System.out.println(e.toString());
}
return result;

}

}

JsonUtils工具类的更多相关文章

  1. .NET3.5中JSON用法以及封装JsonUtils工具类

    .NET3.5中JSON用法以及封装JsonUtils工具类  我们讲到JSON的简单使用,现在我们来研究如何进行封装微软提供的JSON基类,达到更加方便.简单.强大且重用性高的效果. 首先创建一个类 ...

  2. JAVA中封装JSONUtils工具类及使用

    在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...

  3. 在JAVA中封装JSONUtils工具类及使用 (转)

    import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util. ...

  4. java工具类

    1.HttpUtilsHttp网络工具类,主要包括httpGet.httpPost以及http参数相关方法,以httpGet为例:static HttpResponse httpGet(HttpReq ...

  5. Android开发常用工具类

    来源于http://www.open-open.com/lib/view/open1416535785398.html 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前 ...

  6. 53. Android常用工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...

  7. Android常用的工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Prefe ...

  8. Android常用的工具类(转)

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...

  9. 2013最新Android常用的工具类整理

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Pref ...

随机推荐

  1. 2019最好用的自动化测试工具Top 10,果断收藏!

    经常有人在公众号留言或是后台问我,做自动化测试用哪个工具好,或是学哪门编程语言好呢? 这个时候总是无奈的说: 你应该学习Python 或是Java. 你应该掌握Selenium. 又或者你需要学会jm ...

  2. Java基础 使用Properties类

  3. iOS开发 - 多线程实现方案之GCD篇

    GCD概念 GCD为Grand Central Dispatch的缩写,纯c语言编写,是Apple开发的一个多核编程的较新的解决方法.它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统.它是 ...

  4. __contains__, __len__,__reversed__

    __contains__():当使用in,not in 对象的时候 调用(not in 是在in完成后再取反,实际上还是in操作) class A(object): def __init__(self ...

  5. [软件工程基础]2017.11.02 第六次 Scrum 会议

    具体事项 燃尽图 每人工作内容 成员 已完成的工作 计划完成的工作 工作中遇到的困难 游心 #10 搭建可用的开发测试环境:#9 阅读分析 PhyLab 后端代码与文档:#8 掌握 Laravel 框 ...

  6. 个人常用Git操作记录

    本地分支与远程分支建立联系 Git - 新建本地分支与远程分支关联问题 查看本地分支与远程分支关系: git branch -vv 当前分支与远程分支建立关系: git branch --set-up ...

  7. windows安装redis和PHP redis扩展

    1.安装Redis (1)这里选择在github官网上下载Redis,地址:Redis下载地址 下载压缩包(如下图),并解压到本地目录,我放在D:\wamp\redis\redis-windows ( ...

  8. 12.Maps

    1       Maps 1.1  Map声明和访问 maps中的元素是key-value对儿,key与value之间使用冒号(:)分割.创建一个空value的map,使用[:].默认情况下,map的 ...

  9. datagridview连接数据库的简单实现

    对于需要从数据库获取数据的列,在DataPropertyName填写对应的列名字. 在Load函数中添加如下代码,先关闭自动生成列选项,然后得到一个查询的datatable,并将其绑定到datasou ...

  10. mint-ui pull down不起作用及解决方案

    <template> <div style="min-height:200px"> <mt-loadmore :top-method="lo ...