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. 51Nod 1242 斐波那契数列的第N项(矩阵快速幂)

    #include <iostream> #include <algorithm> using namespace std; typedef long long LL; ; ; ...

  2. 证书重复冲突问题:Command /usr/bin/codesign failed with exit code 1

    打开钥匙串 查看是否有两个identifier为相同 的证书,显然导证书的时候不知道怎么把证书导进了系统帐号,并且还重复了.把重复的证书删除就行了.

  3. [題解](最短路)luogu_P1119災後重建

    一道好題,然而看題解做的...... floyed的實質:只經過前k個點i到j的最短路,原狀態轉移方程為 f [ k ] [ i ] [ j ]=min( f[ k-1 ] [ i ] [ j ],f ...

  4. Mass Change Queries Codeforces - 911G

    https://codeforces.com/contest/911/problem/G 没想到线段树合并还能这么搞.. 对每个权值建一个线段树(动态开点),如果权值为k的线段树上第i位为1,那么表示 ...

  5. VMWare版本兼容问题处理

    其他电脑拷贝过来的VMWare虚拟机启动时报错: 在虚拟机根目录中找到"vmx"后缀文件,发现原来的VM版本为14,而本地的VMWare版本为11. virtualHW.versi ...

  6. JavaScript Allongé 第一呷 :基础函数 (3) 未完

    闭包与域是时候来看下一个带函数的函数是如何工作的: (function (x) { return function (y) { return x } })(1)(2) //=> 1 首先,我们使 ...

  7. centos7 更换jdk版本

    查看java版本   java -version 如果有java版本(如果没有直接看红色虚线以下的) 输入 rpm -qa | grep java会显示以下几条内容: ******* ******** ...

  8. vue 引用其他组件

    1.在components 目录下新建Test.vue 文件 <template> <div class="test"> <h1>{{ msg ...

  9. spring cloud各种超时时间设置

    如果是zuul(网关)的超时时间需要设置zuul.hystrix.ribbon等三部分: #zuul超时设置#默认1000zuul.host.socket-timeout-millis=2000#默认 ...

  10. Gitlab User Guide

    Installation Configuration Set user name and email Add SSH keys Repository Create New Repository Clo ...