当前位置: 首页 > news >正文

网站cms相关知识百度浏览器广告怎么投放

网站cms相关知识,百度浏览器广告怎么投放,阿里巴巴网页版入口,wordpress怎么清缓存1、场景 ​ 在日常的开发中,我们数据接口返回数据使用了FastJson序列化数据,当返回一个数据list时候出现" r e f " " ref" " ref"".data" 等类似乱码一样的数据,当时我比较匪夷所思,我写…

1、场景

​ 在日常的开发中,我们数据接口返回数据使用了FastJson序列化数据,当返回一个数据list时候出现" r e f " " ref" " ref"".data" 等类似乱码一样的数据,当时我比较匪夷所思,我写的代码这么完美,为什么会返回非正常数据数据呢?经过我多方查证,原来是FastJson框架自身的问题。

2、问题原因

​ 使用FastJson的JSONArray类型作为返回数据,当像JSONArray对象中添加JSONObject对象,而JSONObject对象中包含相同的节点数据时,FastJson会防止返回数据栈溢出的问题,自动将JSONArray中相同的节点数据使用引用方式代替,即:{" r e f " : ref": ref":…[0]}

3、解决方案

强大的 FastJson 为我们提供了相关的配置参数来禁用循环引用

方法一:使用配置文件

*** FastJson配置** @author charles.yao* @date 2023/8/8**/
@Configuration
public class FastJsonConfiguration {@Beanpublic HttpMessageConverters getFastJSONHttpMessageConvert() {// 定义一个转换消息的对象FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();// 添加fastjson的配置信息 比如 :是否要格式化返回的json数据FastJsonConfig fastJsonConfig = new FastJsonConfig();// 修改配置返回内容的过滤fastJsonConfig.setSerializerFeatures(// 格式化输出SerializerFeature.PrettyFormat,// 消除循环引用SerializerFeature.DisableCircularReferenceDetect,// 返回结果保留null值SerializerFeature.WriteMapNullValue,// 将返回值为null的字符串转变成"",在这里可以自己设置SerializerFeature.WriteNullStringAsEmpty,// List字段如果为null,输出为[],而非nullSerializerFeature.WriteNullListAsEmpty);// 解决 SerializerFeature.WriteNullStringAsEmpty 不生效问题ValueFilter valueFilter = (object, name, value) -> {if (null == value){value = "";}return value;};// 设置全局日期格式fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");// 注入过滤器fastJsonConfig.setSerializeFilters(valueFilter);// Long、BigDecimal 序列化时转 StringSerializeConfig serializeConfig = SerializeConfig.globalInstance;serializeConfig.put(Long.class, ToStringSerializer.instance);serializeConfig.put(Long.TYPE, ToStringSerializer.instance);serializeConfig.put(BigDecimal.class, ToStringSerializer.instance);// 在转换器中添加配置信息fastJsonConfig.setSerializeConfig(serializeConfig);fastConverter.setDefaultCharset(StandardCharsets.UTF_8);fastConverter.setFastJsonConfig(fastJsonConfig);// 解决中文乱码问题,相当于在Controller上的@RequestMapping中加了个属性produces = "application/json"List<MediaType> mediaTypeList = new ArrayList<>();mediaTypeList.add(MediaType.APPLICATION_JSON);fastConverter.setSupportedMediaTypes(mediaTypeList);return new HttpMessageConverters(fastConverter);}
}

所有可选配置属性:

  • SerializerFeature.PrettyFormat:格式化输出
  • SerializerFeature.WriteMapNullValue:是否输出值为null的字段,默认为false
  • SerializerFeature.DisableCircularReferenceDetect:消除循环引用
  • SerializerFeature.WriteNullStringAsEmpty:将为null的字段值显示为""
  • WriteNullListAsEmpty:List字段如果为null,输出为[],而非null
  • WriteNullNumberAsZero:数值字段如果为null,输出为0,而非null
  • WriteNullBooleanAsFalse:Boolean字段如果为null,输出为false,而非null
  • SkipTransientField:如果是true,类中的Get方法对应的Field是transient,序列化时将会被忽略。默认为true
  • SortField:按字段名称排序后输出。默认为false
  • WriteDateUseDateFormat:全局修改日期格式,默认为false。JSON.DEFFAULT_DATE_FORMAT = “yyyy-MM-dd”;JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);
  • BeanToArray:将对象转为array输出
  • QuoteFieldNames:输出key时是否使用双引号,默认为true
  • UseSingleQuotes:输出key时使用单引号而不是双引号,默认为false(经测试,这里的key是指所有的输出结果,而非key/value的key,而是key,和value都使用单引号或双引号输出)

方法二(直接在返回数据禁止循环引用)

JSONArray jsonArrayUserNum = JSONArray.parseArray(JSON.toJSONString(resultJsonArr, SerializerFeature.DisableCircularReferenceDetect));
http://www.hengruixuexiao.com/news/9707.html

相关文章:

  • 网站建设开发公司seo是什么职位
  • 美橙互联网站建设进不去百度一下首页设为主页
  • 天津模板建站定制网站淘宝的17种免费推广方法
  • wordpress 新建侧边栏网站排名在线优化工具
  • 东凤镇做网站公司黄页88
  • 图跃网站建设seo索引擎优化
  • 苏州做网站需要多少钱网址安全检测中心
  • 俄语网站建设友妙招链接
  • 做网站服务器硬盘多大培训心得体会800字
  • 自学网站开发流程最佳的资源搜索引擎
  • 东莞人才网智通北京网站优化对策
  • 网站建设的需求是什么宁波seo推广如何收费
  • 网络公司网站建设服务百度网站提交收录入口
  • wordpress 无法创建目录 linux合肥seo快排扣费
  • 广告设计哪个网站好专业代写文案的公司
  • wordpress创建表格怎么做神马搜索排名seo
  • 房屋装修在线设计网站下载百度浏览器
  • 做外贸的物流网站有哪些互联网广告投放公司
  • 网站地图样式搜索广告是什么意思
  • 电商定制开发网站优化排名软件网站
  • wordpress音频播放列表上海搜索引擎优化seo
  • 网站运营与管理的内容包括泉州百度seo公司
  • 闪灵企业建站系统营销型网站建设易网拓
  • 做饲料推广哪个网站好百度统计怎么用
  • 做网站必须开厂吗国内免费域名注册
  • 广州一起做网站批发友情链接图片
  • a5网站诊断国外引流推广软件
  • 小说类型网站怎么做百度推广seo效果怎么样
  • 设计漂亮的网站企业官网seo
  • 国外专卖模板的网站开发app需要多少资金