关于DataRow中key的大小写
背景:JAVA从数据库中查出来的数据,封装到DataRow中传给前端显示,显示时需要根据属性名来调用显示内容。属性中经常会有各种不同的命名规则,如userName,UserName这类大小驼峰格式前端还可以分辨,但涉及到一些专用缩写根据不同团体不同人的习惯会出现多种格式,如UserId,UserID,id,Id,ID,所以经常需要统一成大写以避免因大小写造成的问。
所以调用DataRow.put(key,value)时会将key转换成统一格式。在默认情况下key会转换成全大写。
转换规则优先级:
1.DataRow对象自身规则,DataRow 实例化时显式指定。new DataRow(DataRow.KEY_CASE keyCase);
KEY_CASE.CONFIG:根据配置类(默认值)
KEY_CASE.SRC:原样保存不转换
KEY_CASE.UPPER:转大写
KEY_CASE.LOWER:转小写
KEY_CASE.Camel:下/中划线转成大驼峰
KEY_CASE.camel:下/中划线转成小驼峰
2.根据配置类ConfigTable
配置类先加载配置文件anyline-config.xml或统一配置(如nacos等)中的<property key="IS_UPPER_KEY">false</property><property key="IS_LOWER_KEY">false</property>
如果没有配置文件则根据默认属性
配置类中有两个默认IS_UPPER_KEY = true;IS_LOWER_KEY = false;
可以通过调用ConfigTable的静态方式修改以上两个属性ConfigTable.setUpperKey(false);
需要注意的是配置类会定期加载配置文件,所以通过ConfigTable.setUpperKey(false);的效果会被覆盖
在通过DataRow来解析json数据时,同样按以上优先级确认key的大小写。如果要保持原样可以解析时指定key规则
DataRow row = DataRow.parseJson(KEY_CASE.SRC,json);