文档章节

服务器端-前端json数据传输小结

 阿宇_
发布于 2015/08/03 21:14
字数 550
阅读 812
收藏 7

http://pan.baidu.com/s/1ntKhtMh

http://pan.baidu.com/s/1kTrLiPT

Java服务端收到前端字符串转json:

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSON;

String s = "{\"userLoginId\":\"sysman\",\"mobileIds\":\"bdzfzl001,sgbj001\"}";
		JSONObject jsonobj = JSON.parseObject(s);
		System.out.println(jsonobj.get("userLoginId"));
		System.out.println(jsonobj.get("mobileIds"));
		String mobileIds = (String) jsonobj.get("mobileIds");
		String[] arrMobileId = mobileIds.split(",");
		System.out.println(arrMobileId[0]+"|"+arrMobileId[1]);


Java服务器端向前端发送:

JsonUtil.java

package com.zhxjz.framework.util.common;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.map.ObjectMapper;

import com.zhxjz.framework.model.json.JsonResult;

/**
 * json处理工具类
 * 
 * @author caozj
 */
public class JsonUtil {

	private JsonUtil() {

	}

	private static final ObjectMapper mapper = new ObjectMapper();

	private static final Log logger = LogFactory.getLog(JsonUtil.class);

	/**
	 * Object -> json
	 * 
	 * @param obj
	 * @return
	 */
	public static String toJson(Object obj) {
		try {
			return mapper.writeValueAsString(obj);
		} catch (Exception e) {
			logger.error("Object转化成Json失败", e);
		}
		return null;
	}

	/**
	 * json -> Object
	 * 
	 * @param <T>
	 * @param content
	 * @param valueType
	 * @return
	 */
	public static <T> T toObject(String content, Class<T> valueType) {
		if (StringUtils.isEmpty(content)) {
			return null;
		}
		try {
			return mapper.readValue(content, valueType);
		} catch (Exception e) {
			logger.error("Json转化成Object失败", e);
		}
		return null;
	}

	/**
	 * json -> List
	 * 
	 * @param <T>
	 * @param content
	 * @param valueType
	 * @return
	 */
	public static <T> List<T> toList(String content, Class<T> valueType) {
		JsonNode node = null;
		try {
			node = mapper.readTree(content);
		} catch (Exception e) {
			logger.error("Json转化成List失败", e);
		}
		if (node == null) {
			return new ArrayList<T>(0);
		}
		Iterator<JsonNode> iterator = node.getElements();
		List<T> list = new ArrayList<T>();
		while (iterator.hasNext()) {
			String json = iterator.next().toString();
			T e = toObject(json, valueType);
			list.add(e);
		}
		return list;
	}

	/**
	 * success json
	 * 
	 * @return - {success:true}
	 */
	public static String successJson() {
		return toJson(new JsonResult());
	}

	/**
	 * result json
	 * 
	 * @param success
	 *            - 操作成功与否
	 * @param message
	 *            - 结果信息
	 * @return - {success:true,message:'test'}
	 */
	public static String resultJson(boolean success, String message) {
		return toJson(new JsonResult(message, success ? JsonResult.successCode : JsonResult.failCode));
	}

	/**
	 * result json
	 * 
	 * @param code
	 *            - 状态码
	 * @param message
	 *            - 结果信息
	 * @param data
	 *            - 结果数据
	 * @return
	 */
	public static String resultJson(int code, String message, Object data) {
		return toJson(new JsonResult(data, message, code));
	}
}

JsonResult.java

package com.zhxjz.framework.model.json;

import com.zhxjz.framework.util.common.JsonUtil;

/**
 * 返回给页面的json格式数据
 * 
 * @author caozj
 * 
 */
public class JsonResult {

	/**
	 * 成功码
	 */
	public static final int successCode = 200;

	/**
	 * 错误码
	 */
	public static final int failCode = 400;

	/**
	 * 状态码(200代表成功,其他可自行定义)
	 */
	private int code;

	/**
	 * 提示消息
	 */
	private String msg;

	/**
	 * 数据对象
	 */
	private Object data;

	public int getCode() {
		return code;
	}

	public void setCode(int code) {
		this.code = code;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data;
	}

	public JsonResult() {
		code = successCode;
	}

	public JsonResult(Object data) {
		this.data = data;
		code = successCode;
	}

	public JsonResult(Object data, String msg) {
		this.data = data;
		this.code = successCode;
		this.msg = msg;
	}

	public JsonResult(Object data, String msg, int code) {
		this.data = data;
		this.code = code;
		this.msg = msg;
	}

	public JsonResult(String msg, int code) {
		this.code = code;
		this.msg = msg;
	}

	public JsonResult(int code) {
		this.code = code;
	}

	public String toJson() {
		return JsonUtil.toJson(this);
	}

}

List<Map<String, Object>> dataList = userFuncService.getUserFunc(account, arrMobileId);

String message = new JsonResult(dataList).toJson();


© 著作权归作者所有

粉丝 6
博文 165
码字总数 61133
作品 0
成都
程序员
私信 提问
Thrift的java和php数据交互

Thrift是一个软件框架(远程过程调用框架),用来进行可扩展且跨语言的服务的开发,封装了数据传输格式(二进制、json)和网络通信的服务框架,提供多语言(C++, Java, Python, PHP, Ruby, E...

penngo
2015/08/07
0
4
Android中从服务器获取数据的几种方法利与弊?

最近被这个问题困扰着,想用android 开发个小软件。主要功能是从服务器读取数据到android上显示。由于个人对android开发不太了解,请大神们给些指点。 我能想到的数据传输模式有以下几种: ...

姓骚扰
2012/08/14
3.6K
3
if else是不是好的编程习惯?

大概是这样子的,我在Android项目与服务端通信使用的是JSON来进行数据传输,使用了这个java-json项目https://github.com/douglascrockford/JSON-java 。因为考虑到服务器可能出现各种问题,所...

就是我啊
2014/01/14
2.6K
21
ajax jsonp其本质 用原生js来处理跨域的数据(jsonp)

说明总结: 1.ajax和jsonp其实本质上是不同的东西。ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加<script>标签来调用服务器提供的js脚本。 2.但是ajax和jsonp在...

BearCatYN
2015/06/04
0
0
JWT-token—前后端分离架构的api安全问题

前后端分离架构带来的好处一搜一大堆,我们来看一下分离后后端接口的安全问题。 前后端分离架构现状: 前端:vue项目,Nginx部署 后端:node.js和java项目 这样的情况后端api是暴露在外网中,...

激情的狼王
2018/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Disable Autostart of MySQL Server on Ubuntu

OSC Markdown Editer 真香,笔记一篇,懒得转中文,如有表述问题,请不吝指出,先谢为敬! OS: Ubuntu 19.04 When the MySQL server is installed, it automatically started with the OS. I...

Iridium
25分钟前
1
0
OpenStack RDO + S3

Packstack(RDO) installation "sync db timeout" issue version: openstack-packstack-13.0.0-0.1.0rc1.el7.noarchopenstack-packstack-puppet-13.0.0-0.1.0rc1.el7.noarch add timeout =>......

Firxiao
28分钟前
1
0
java运算符的优先级

https://www.cnblogs.com/zjfjava/p/5996666.html

南桥北木
33分钟前
1
0
线性代数的静态观-向量空间(一)

向量是一个具有大小和方向的量,因此只要大小与方向相同则向量也相同,从而向量可以自由平行移动。 向量与点不同,它反映的是从A到B的位移(既包含位移的方向又包含位移的大小),而点仅仅是...

FAT_mt
34分钟前
1
0
Redis缓存穿透、缓存雪崩和缓存击穿

Redis缓存穿透、缓存雪崩 缓存雪崩,是指在某一个时间段,缓存集中过期失效。 产生雪崩的原因之一,比如在写本文的时候,马上就要到双十二零点,很快就会迎来一波抢购,这波商品时间比较集中...

architect刘源源
55分钟前
11
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部