通过FastJson高级特性隐藏和显示指定字段

本文介绍如何使用FastJson的高级特性来实现字段的隐藏与显示,适用于不同场景下的Model构造需求,通过具体示例展示了注解的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 概述

我们在后台开发中会使用一些Entity来实现字段返回Model的构造,或者是与数据库对应Model的构造,对于不同场景会存在一些命名规则,如使用VO,BO,DTO,POJO等命名方式来实现不同场景Model的构造。

除此之外,为了节省带宽或者是出于安全性考虑,我们可以将一些字段隐藏掉,此时用们就可以利用FastJson中的一些高级特性来实现。

二 利用FastJson的高级特性实现隐藏和现实指定字段

1. 隐藏指定字段

    @FastJsonView(exclude =
            @FastJsonFilter(clazz = CouponEntity.class,props = {"id"})
    )

如上示例,返回的Model为CouponEntity,返回时将其中的字段id隐藏掉。

2. 显示指定字段

    @FastJsonView(include =
            @FastJsonFilter(clazz = CouponEntity.class,props = {"name"})
    )

如上示例,返回的Model同样为CouponEntity,返回时只是返回字段name。

三 FastJson相关源码介绍

注解@FastJsonView源码

package com.alibaba.fastjson.support.spring.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FastJsonView {
    FastJsonFilter[] include() default {};//包括哪些字段

    FastJsonFilter[] exclude() default {};//排除哪些字段
}

如源码所示,返回的是FastJsonFilter数组。

注解@FastJsonFilter源码

package com.alibaba.fastjson.support.spring.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FastJsonFilter {
    Class<?> clazz();//该参数指定Model

    String[] props();//该参数指定显示或者隐藏哪些字段
}

如源码所示,Model可以时任意类,同时返回参数为String类型的数组。

Unity3D官方提供的地形、草丛树木资源包(Terrain Assets)是一套用于游戏环境建模场景设计的工具素材集合。这个资源包的目的是帮助开发者快速建立逼真的游戏世界。它包含了各种地形材料、纹理、植被树木模型,可以通过简单的拖拽调整来创建独特的地形自然环境。 首先,地形模块是该资源包的核心部分之一。它提供了不同种类的地形纹理,如草地、沙漠、山地等,开发者可以根据自己的需求选择适合的纹理,并通过调整混合比例来创建自然过渡效果。 其次,草丛模块提供了各种形态颜色的草丛模型,可以在地形上进行布置,增加游戏场景的真实感。草丛的数量、密度高度都可以通过简单的参数调整来实现。 最后,树木模块提供了多种树木模型,包括各种常见的树种,如松树、橡树等。开发者可以根据需要选择适合的树木模型,并设置它们的分布、密度高度,以创建不同类型的森林林地。 此外,这个资源包还提供了一些其他功能,如自动细节放置工具,可以根据地形的高度坡度自动放置花草、石头等细节物体,以增加游戏环境的丰富程度。 总之,Unity3D官方的地形、草丛树木资源包是一个强大的工具集,可以帮助开发者快速建立逼真的游戏环境。通过使用这些资源,开发者可以节省大量的时间精力,并且能够创建出独特而生动的游戏世界。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值