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

网站建设 套餐seo排名的影响因素有哪些

网站建设 套餐,seo排名的影响因素有哪些,企业响应式网站建设报价,做一手楼盘的网站我有个朋友在公司遇到一个需求:某个接口,面向不同的用户返回的字段数不一样字段数。 我举例两种场景并且都给一个方案他,同时也供大家参考。 场景1: 接口返回的是List 或者直接就是entity,且entity对应某张数据表&…

我有个朋友在公司遇到一个需求:某个接口,面向不同的用户返回的字段数不一样字段数。
我举例两种场景并且都给一个方案他,同时也供大家参考。

  1. 场景1:
    接口返回的是List 或者直接就是entity,且entity对应某张数据表,不需要考虑嵌套有其他实体的情况。
public class A{private Long id;private String name;}

假设在写这个核心方法前我们从数据库或者某个地方已经得到这个用户要展示的字段,即一个列表

List<String> fields 

这种情况下直接把实体转Map类型,根据fields,取对应的key,value,这种可以写个AOP拦截来轻松实现全局配置。

    public static Object getLastMap(Object v, List<String> fields) {ObjectMapper objectMapper = new ObjectMapper();Map<String, Object> map = objectMapper.convertValue(v, new TypeReference<Map<String, Object>>() {});Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();while (iterator.hasNext()) {Map.Entry<String, Object> entry = iterator.next();if (fields.contains(entry.getKey())) continue;iterator.remove(); // 删除不是 "x" 和 "y" 的键值对}return map;}
  1. 场景2:
    接口返回的是List 或者直接就是entity,要考虑嵌套有其他实体的情况。
public class A{private Long id;private B b;private String name;private String x;}public class B{private Long id;}

假设在写这个核心方法前我们从数据库或者某个地方已经得到这个用户要展示的字段,即一个字典
key对应是全部实体的名称,value对应这些实体的变量名称列表。

Map<String, List<String>> fieldsDictionary;

转换核心:

@JsonSerialize(using = CustomSerializer.class)public static class CustomSerializer extends JsonSerializer<TBdMaterialVo> {private Map<String, List<String>> fieldsDictionary;public CustomSerializer(Map<String, List<String>> fieldsDictionary) {this.fieldsDictionary = fieldsDictionary;}@Overridepublic void serialize(A value, JsonGenerator gen, SerializerProvider serializers) throws IOException {// 本人比较懒,这里直接用fieldsDictionary的key来用,大家自行修改gen.writeStartObject();if (fieldsDictionary.containsKey("b")) {// 直接调用 serializeMaterialL 来处理 materialL 的序列化gen.writeObjectField("b", value.getMaterialL());serializeMaterialL(value.getMaterialL(), gen, fieldsDictionary.get("b"));}if (fieldsDictionary.containsKey("id")) {gen.writeObjectField("id", value.getFmaterialid());}gen.writeEndObject();}private void serializeMaterialL(B value, JsonGenerator gen, List<String> fields) throws IOException {if (fields.contains("id")) {gen.writeObjectField("id", value.getFmaterialid());}}}

使用:

        A vo = new A();vo.setId(1L);vo.setName("xx");B b= new B();b.setId(11L);vo.setMaterialL(b);Map<String, List<String>> fieldsDictionary = new HashMap<>();fieldsDictionary.put("b", Arrays.asList("id"));fieldsDictionary.put("id", Arrays.asList("x"));fieldsDictionary.put("name", Arrays.asList("x"));ObjectMapper mapper = new ObjectMapper();SimpleModule module = new SimpleModule();module.addSerializer(A.class, new A.CustomSerializer(fieldsDictionary));mapper.registerModule(module);String jsonResult = mapper.writeValueAsString(vo);return success(JSON.parseObject(jsonResult, Map.class));

结束语:很久都不写博客了,如果有帮助点点赞,点赞多那么给大家分享其他的小妙招。

http://www.tj-hxxt.cn/news/118716.html

相关文章:

  • 用pc网站建设手机网站班级优化大师网页版登录
  • 软件开发app开发定制外包11seo综合查询什么意思
  • 网站图片在手机上做多大最清晰关键词排名
  • 网站模型怎么做世界军事新闻
  • 现在由哪些网站可以做外链域名注册阿里云
  • 市南区网站建设seo推广百度百科
  • 龙湖地产 网站建设发外链的平台有哪些
  • 做游戏网站的需求分析百度做推广一般要多少钱
  • seo外贸网站建设盐城seo排名
  • WordPress可以做社交网站嘛东莞网络营销公司
  • b2b网站免费建设chrome官网下载
  • 政府网站建设水平seo排名工具外包
  • 东莞排名推广seo中文意思是
  • wordpress添加百度统计百度seo优化教程免费
  • 网站开发与维护的工作内容珠海网站建设
  • 自己搭建公司网站福州seo代理计费
  • 做的好的购物网站网站安全检测平台
  • 高端网站建设多少钱在线网站seo诊断
  • ps做网页怎么在网站上打开企业营销网站制作
  • 推进门户网站建设 用好用活2024年8月爆发新的大流行病毒吗
  • 商品网站策划书桂林seo排名
  • 农村网站建设的意义好的竞价推广外包公司
  • asp网站管理系统app开发者需要更新此app
  • 宁波市建设工程检测协会网站营业推广是什么
  • 中小企业网站用什么技术手机创建网站免费注册
  • 长沙专业网站建设公司哪家好新的seo网站优化排名 网站
  • 校园论坛网站源码推广运营是做什么的
  • 万网怎样做网站调试网站优化 福州
  • 平顶山 网站建设公司品牌营销服务
  • 怎么把现有网站开发php网络优化软件