首页 > 编程知识 正文

Java注解原理,javatrim函数如何使用

时间:2023-05-04 13:39:33 阅读:15639 作者:2158

应用场景:与前端交互时,前端想要的字段与提供的字段名称不同。 在这种情况下,一个解决方案是修改实体类,但如果应用了大量实体类,则更改的成本太大,可以使用注释@JSONField来实现替换效果。 使用方法如下。

@JSONfield(name='size_new ' )私有int size;1. JSON内容与实体类,@JSONField常规写法

JSON (与以下JSON字符串的内容一致) ) ) ) ) ) ) ) ) )。

{ size: 5,weight: 10,colour: 'red'}实体类(AppleDO.java )。

import com.Alibaba.fast JSON.JSON; import com.Alibaba.fast JSON.annotation.JSON field; publicclassappledo { @ JSON field (name=' size _ new ' ) private int size; @JSONfield(name='weight_new ' )私有int weight; @JSONfield(name='colour_new ' )私有字符串颜色; 公共int getsize () { return size; }公共语音设置(intsize ) { this.size=size; } public int getWeight () { return weight; }publicvoidsetweight(intweight ) { this.weight=weight; }公共字符串get colour () { return colour; } publicvoidsetcolour (string colour ) { this.colour=colour; }} 2. JSON字符串转对应Java对象

执行代码

publicstaticvoidmain (string [ ] args ) stringJSON=((n ) ) (size_new33365,n' ' weight_new: 10, n aples 系统. out.println (apple do.getsize (); 系统. out.println (apple do.get weight (); 系统. out.println (apple do.get colour (); }运行结果

3. 支持序列化和反序列化

源代码中的序列化和去序列化默认值均为true,默认情况下,允许此字段进行序列化和去序列化。 如下所示。

boolean serialize ()默认真; boolean deserialize ()默认true; 使用方法(以下不支持序列化,支持反序列化)

@JSONfield(name='size_new ',serialize=false,deserialize=true ) private int size; 即使某些字段为空,您也希望将此字段返回到前端。 此设置可以返回包含空字段的字符串,但对于基本数据类型无效,必须将其转换为包装类。)

@ JSON field (serialzefeatures=serializer feature.writemapnullvalue )4. 指定字段顺序

将Java对象转换为JSON格式。 转换后的字段顺序根据首字母顺序排序。 或者,也可以按如下方式指定字段的顺序:

@JSONfield(name='size_new ',ordinal=3) private int size; @JSONfield(name='weight_new ',ordinal=1)私有int weight; @JSONfield(name='colour_new ',ordinal=2)私有字符串颜色; 执行代码

AppleDO apple=new AppleDO (; apple.setsize(6; apple.setWeight(12; apple.setcolour('green ); stringapplestr=JSON.tojsonstring (apple; system.out.println(applestr ); 在添加ordinal参数之前运行结果

添加ordinal参数后运行结果

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。