JsonUtils工具类
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工具类的更多相关文章
- .NET3.5中JSON用法以及封装JsonUtils工具类
.NET3.5中JSON用法以及封装JsonUtils工具类 我们讲到JSON的简单使用,现在我们来研究如何进行封装微软提供的JSON基类,达到更加方便.简单.强大且重用性高的效果. 首先创建一个类 ...
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- 在JAVA中封装JSONUtils工具类及使用 (转)
import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util. ...
- java工具类
1.HttpUtilsHttp网络工具类,主要包括httpGet.httpPost以及http参数相关方法,以httpGet为例:static HttpResponse httpGet(HttpReq ...
- Android开发常用工具类
来源于http://www.open-open.com/lib/view/open1416535785398.html 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前 ...
- 53. Android常用工具类
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...
- Android常用的工具类
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Prefe ...
- Android常用的工具类(转)
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...
- 2013最新Android常用的工具类整理
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Pref ...
随机推荐
- 在win下启动memcached
memcached -m 64 -p 11211 -vvv 设置默认内存64,默认端口11211 ,输出功能及警告错误等信息
- opencv学习资料
搜集一些基础书 数字图像处理 信号与系统 计算机视觉中的多视图几何 图像处理.分析与机器视觉 基于序列图像的视觉检测理论与方法 官网(各版本api) http://opencv.org/ opencv ...
- TopCoder 14084 BearPermutations2【笛卡尔树+dp】
传送:https://vjudge.net/problem/TopCoder-14084 只是利用了笛卡尔树的性质,设f[i][j]为区间[i,j]的贡献,然后枚举中间最大的点k来转移,首先是两侧小区 ...
- word2vec改进之Negative Sampling
训练网络时往往会对全部的神经元参数进行微调,从而让训练结果更加准确.但在这个网络中,训练参数很多,每次微调上百万的数据是很浪费计算资源的.那么Negative Sampling方法可以通过每次调整很小 ...
- APP为什么会被打回来??
APP的设置界面, 按钮使用了类似iPhone的操作方式以及icon的圆角设计 -> 重新设计 APP的年龄设置太低 -> 改年龄 APP里有实物奖励 -> 免责声明, ...
- 【TeamViewer】v13.2.26558版本 修改ID
TeamViewer是一款远程协作软件,可以让你在一台机器上操作另一台机器.比如我最近就经常在家里连接公司的电脑进行远程工作.可以说是对于程序员很好用的一个软件. TeamViewer 使用频繁后会被 ...
- cdq(2018.10.18)
一句话题意:给你三个数列{a_i},{b_i},{c_i},保证每个数列都恰好是一个排列.你需要求出满足\(a_i<a_j,b_i<b_j,c_i<c_j\)的有序对\((i,j)\ ...
- PostgreSQL-9-别名与动态表复制
1.列别名 SELECT column_name AS alias_name FROM table_name conditions... ; alias_name: 它指定分配给列的临时名称 SEL ...
- GraphicsMagick安装&make命令使用
0.0本过程为GraphicsMagick Linux版安装,通过典型的make编译安装. 未了支持png和jpg格式,首先请安装依赖.执行 yum install -y libpng-devel y ...
- rpm包的安装方法
每次都记不住,这次必须整理一下!cd到你存放rpm文件包的目录rpm -ivh linuxqq-v1.0.2-beta1.i386.rpm安装时可能会遇到缺少包的错误.rpm -ivh --repla ...