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. UGUI 锚点坑

    ----------------------------------------------------------------- 关键点:4个实心蓝点距离雪花4瓣的距离永远不变 锚点Anchors: ...

  2. 51nod1639(组合数学)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1639 题意:中文题诶- 思路:组合数学 n根鞋带要组成一个环, ...

  3. bzoj 3996: [TJOI2015]线性代数【最小割】

    把转置矩阵看成逆矩阵吓傻了233 首先按照矩乘推一下式子: \[ D=\sum_{i=1}^n a[i]*(\sum_{j=1}^n a[j]*b[j][i])-c[i] \] \[ D=(\sum_ ...

  4. 第五章 “我要点爆”微信小程序云开发实例之从云端获取数据制作首页

    下面我们来实现从云端获取数据,完成首页世界页面index的制作,首页分为4个数据列表导航页面,页面具体内容如下: 推荐:为用户推荐最新的点爆信息,它包含文本点爆内容和语音点爆内容. 文爆:筛选出文字点 ...

  5. 上传到git

    https://blog.csdn.net/Lucky_LXG/article/details/77849212

  6. PostgreSQL-7-数据连接

    1.通过WHERE进行简单连接 SELECT * FROM company3,department  不添加WHERE将会显示所有数据 SELECT * FROM company3,departmen ...

  7. iOS蓝牙连接流程介绍-1

    蓝牙连接流程介绍 1.1-程序员找女朋友流程介绍 0.程序员找女朋友参与者 1.你 2.受害者(女性同胞)  (1)她的性格1 性格的特点 (2)她的性格2  分析性格的特点 1.寻找女性 寻尽身边一 ...

  8. __str__,__repr__,__format__

    __str__,__repr__ __str__:控制返回值,并且返回值必须是str类型,否则报错 __repr__:控制返回值并且返回值必须是str类型,否则报错 __repr__是__str__的 ...

  9. HashMap的小总结 + 源码分析

    一.HashMap的原理 所谓Map,就是关联数组,存的是键值对——key&value. 实现一个简单的Map,你也许会直接用两个LIst,一个存key,一个存value.然后做查询或者get ...

  10. shell 中的if语句

    if [ t != "." -a t != ".." ] 之前一直不知道 -a 是什么意思,后来才知道     -a = and  ;    -o = or