package cn.com.shopec.app.common; import cn.com.shopec.core.common.PageFinder; import cn.com.shopec.core.common.Query; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.*; import java.io.Serializable; import java.lang.reflect.Type; import java.util.*; /** * Created by guanfeng.li on 2016/7/8. * APP接口返回实体类 */ public class Result implements Serializable { //状态码 private String status = "200"; //消息提示 private String msg = ""; //响应数据 private Object data; //分页 private PageFinder page; //json格式化 private SerializeConfig jsonConfig; //json 特性配置 private Set<SerializerFeature> jsonFeatures; //json 属性过滤 private Set<SerializeFilter> jsonFilter; public Result() { } public Result(Object data, Query query, long rowCount) { this.data = data; this.page = new PageFinder<>(query.getPageNo(), query.getPageSize(), rowCount); } public Result(String status, String msg, Object data) { this.status = status; this.msg = msg; this.data = data; } public Result(Object data) { this.data = data; } public Result(Object data,PageFinder page) { this.data = data; this.page = page; } /** * Created by guanfeng.li 2016/7/19 * 特性配置 */ public Result addSerializerFeature(SerializerFeature... serializerFeatures) { addSerializerFeature(3, serializerFeatures); return this; } /** * Created by guanfeng.li 2016/7/19 * 特性配置 */ public Result addSerializerFeature(int size, SerializerFeature... serializerFeatures) { if (jsonFeatures == null) { jsonFeatures = new HashSet<>(size); } for (SerializerFeature item : serializerFeatures) { jsonFeatures.add(item); } return this; } /** * Created by guanfeng.li 2016/7/19 * json 属性过滤 */ public Result addSerializeFilter(Class<?> clazz, String properties) { addSerializeFilter(3, clazz, properties, true); return this; } /** * Created by guanfeng.li 2016/7/19 * json 属性过滤 */ public Result addSerializeFilter(int size,SerializeFilter filter) { if (jsonFilter == null) { jsonFilter = new HashSet<>(size); } jsonFilter.add(filter); return this; } /** * Created by guanfeng.li 2016/7/19 * json 属性过滤 */ public Result addSerializeFilter(SerializeFilter filter) { return addSerializeFilter(3,filter); } /** * Created by guanfeng.li 2016/7/19 * json 属性过滤 */ public Result addSerializeFilter(Class<?> clazz, String properties, boolean isinclude) { addSerializeFilter(3, clazz, properties, isinclude); return this; } /** * Created by guanfeng.li 2016/7/19 * json 属性过滤 */ public Result addSerializeFilter(int size, Class<?> clazz, String properties, boolean isinclude) { if (jsonFilter == null) { jsonFilter = new HashSet<>(); } if(clazz!=null && properties==null){ jsonFilter.add(new SimplePropertyPreFilter(clazz)); return this; } if(clazz==null && properties!=null){ jsonFilter.add(new SimplePropertyPreFilter(properties.split(","))); return this; } if (!isinclude) { SimplePropertyPreFilter filter = new SimplePropertyPreFilter(clazz); filter.getExcludes().addAll(Arrays.asList(properties.split(","))); jsonFilter.add(filter); } else { jsonFilter.add(new SimplePropertyPreFilter(clazz, properties.split(","))); } return this; } /** * Created by guanfeng.li 2016/7/19 * 过滤分页信息 */ public Result filterPage(){ addSerializeFilter(this.getClass(),"page",false); return this; } /** * Created by guanfeng.li 2016/7/19 * json格式化 */ public Result putSerializeConfig(Class cls, ObjectSerializer value) { putSerializeConfig(3, cls, value); return this; } /** * Created by guanfeng.li 2016/7/19 * json格式化 */ public Result putSerializeConfig(int size, Class cls, ObjectSerializer value) { if (jsonConfig == null) { jsonConfig = new SerializeConfig(size); } jsonConfig.put(cls, value); return this; } /** * Created by guanfeng.li 2016/7/19 * 空字符串显示 “” * 空集合 [] * 空Map {} * Number 0 */ public Result writeNullStringNumberListAsEmpty() { addSerializerFeature(5, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullListAsEmpty); return this; } public Result writeNullStringAsEmpty() { addSerializerFeature(2, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty); return this; } public Result writeNullListAsEmpty() { addSerializerFeature(2, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullListAsEmpty); return this; } public Result writeNullNumberAsZero() { addSerializerFeature(2, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullNumberAsZero); return this; } /** * Created by guanfeng.li 2016/7/19 * 漂亮格式化 */ public Result prettyFormat() { addSerializerFeature(SerializerFeature.PrettyFormat); return this; } //添加返回结果 public Result put(String key, Object value) { if (data == null) { data = new HashMap(); } else { if (!(data instanceof Map)) { return this; } } ((Map) data).put(key, value); return this; } public String getStatus() { return status; } public Result setStatus(String status) { this.status = status; return this; } public String getMsg() { return msg; } public Result setMsg(String msg) { this.msg = msg; return this; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public PageFinder getPage() { return page; } public Result setPage(PageFinder page) { this.page = page; return this; } public SerializeConfig getJsonConfig() { return jsonConfig; } public Set<SerializerFeature> getJsonFeatures() { return jsonFeatures; } public Set<SerializeFilter> getJsonFilter() { return jsonFilter; } @Override public String toString() { if (jsonFilter != null || jsonFeatures != null || jsonConfig != null) { addSerializeFilter(Result.class, "jsonConfig,jsonFeatures,jsonFilter", false); } SerializerFeature[] features = new SerializerFeature[jsonFeatures == null ? 0 : jsonFeatures.size()]; if (jsonFeatures != null) { jsonFeatures.toArray(features); } SerializeFilter[] filters = new SerializeFilter[jsonFilter == null ? 0 : jsonFilter.size()]; if (jsonFilter != null) { jsonFilter.toArray(filters); } String json; if (jsonConfig != null) { json = JSON.toJSONString(this, jsonConfig, filters, features); } else { json = JSON.toJSONString(this, filters, features); } return json; } }
相关推荐
赠送原API文档:fastjson-jaxrs-json-provider-0.3.1-javadoc.jar; 赠送源代码:fastjson-jaxrs-json-provider-0.3.1-sources.jar; 赠送Maven依赖信息文件:fastjson-jaxrs-json-provider-0.3.1.pom; 包含翻译后...
通过fastjson实现了JavaBean,list,MAP,list等格式与json格式之间的转换,已经附带fastjson的包,包的版本为fastjson-1.1.36.jar
使用fastjson.jar解析复杂的json数据,包含完整实例代码
开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。
实现json转换,fastjson json json转换,可以帮助开发中涉及json格式处理的程序猿。
阿里巴巴 fastjson是目前解析json数据的一种比较高效,快速的方式。
fastjson-1.1.33.jar json所使用的jar包
fastjson 快速解析json json、List互转
主要介绍了使用fastjson中的JSONPath处理json数据的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Java常用四大json库,包含目前最新版gson,fastjson,jackson,json-lib
本篇文章主要介绍了springboot实现FastJson解析json数据的方法,非常具有实用价值,需要的朋友可以参考下
fastjson-Go的快速JSON解析器和验证器产品特点快速。 和往常一样,比标准快15倍。 请参阅。 与相反,解析任意JSON,而没有模式,反射,结构魔术和代码生成。 提供简单的 。 访问多个不相关的字段时,性能优于和 ,...
包含翻译后的API文档:fastjson-1.2.54-javadoc-API文档-中文(简体)版.zip; Maven坐标:com.alibaba:fastjson:1.2.54; 标签:alibaba、fastjson、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用...
本篇文章主要介绍了springMVC利用FastJson接口返回json数据相关配置详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
the Polymorphic JSON Serializer .
FastJson解析Json数据源码,
阿里fastjson和谷歌net.sf.json(三种)
使用阿里巴巴提供的fastjson可以快速的实现java对象和json串之间的相互转换,避免字符串拼接的繁琐!
FASTJSON 阿里巴巴推出的 json解析工具
1、封装WeatherInfo实体类,对接口返回的结果进行映射的实体类 2、WeatherUtils类,负责调用第三方天气预报api接口处理的工具类,包括根据城市查询等,返回的格式是json 3、test类,对接口进行功能性测试