All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.feilong.json.processor.CapitalizePropertyNameProcessor Maven / Gradle / Ivy

Go to download

feilong is a suite of core and expanded libraries that include utility classes, http, excel,cvs, io classes, and much much more.

There is a newer version: 4.3.0
Show newest version
/*
 * Copyright (C) 2008 feilong
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.feilong.json.processor;

import com.feilong.lib.json.processors.PropertyNameProcessor;
import com.feilong.lib.lang3.StringUtils;

/**
 * 将指定类型下面所有属性名字首字母变大写的处理器.
 * 
 * 

说明:

*
* * 我们这边的代码 * *
 * public class CrmAddpointCommand implements Serializable{
 * 
 *     // 用户编码
 *     private String openId;
 * 
 *     // 渠道:Tmall - 天猫 JD - 京东
 *     private String consumptionChannel;
 * 
 *     // 淘宝/京东买家账号
 *     private String buyerId;
 * 
 *     // 电商订单编号 
 *     private String orderCode;
 * 
 *     // setter getter
 * }
 * 
 * 
* * 符合标准的java代码规范,如果直接使用 {@link com.feilong.json.JsonUtil#format(Object)} * *
 * 
 * public void testJsonTest(){
 *     CrmAddpointCommand crmAddpointCommand = new CrmAddpointCommand();
 * 
 *     crmAddpointCommand.setBuyerId("123456");
 *     crmAddpointCommand.setConsumptionChannel("feilongstore");
 *     crmAddpointCommand.setOpenId("feilong888888ky");
 *     crmAddpointCommand.setOrderCode("fl123456");
 * 
 *     LOGGER.debug(JsonUtil.format(crmAddpointCommand));
 * }
 * 
 * 
* * 输出结果: * *
 * {
 * "orderCode": "fl123456",
 * "buyerId": "123456",
 * "consumptionChannel": "feilongstore",
 * "openId": "feilong888888ky"
 * }
 * 
 * 
* * 输出的属性大小写和 crmAddpointCommand 对象里面字段的大小写相同,但是对方接口要求首字符要大写: * *

* json *

* * 此时,你可以使用 * *
 * 
 * public void testJsonTest(){
 *     CrmAddpointCommand crmAddpointCommand = new CrmAddpointCommand();
 * 
 *     crmAddpointCommand.setBuyerId("123456");
 *     crmAddpointCommand.setConsumptionChannel("feilongstore");
 *     crmAddpointCommand.setOpenId("feilong888888ky");
 *     crmAddpointCommand.setOrderCode("fl123456");
 * 
 *         //---------------------------------------------------------------
 * 
 *     JavaToJsonConfig javaToJsonConfig = new JavaToJsonConfig();
 * 
 *     Map{@code , PropertyNameProcessor>} targetClassAndPropertyNameProcessorMap = newHashMap(1);
 *     targetClassAndPropertyNameProcessorMap.put(CrmAddpointCommand.class, CapitalizePropertyNameProcessor.INSTANCE);
 * 
 *     javaToJsonConfig.setJsonTargetClassAndPropertyNameProcessorMap(targetClassAndPropertyNameProcessorMap);
 * 
 *     LOGGER.debug(JsonUtil.format(crmAddpointCommand, javaToJsonConfig));
 * }
 * 
* * 输出结果: * *
 * {
 * "OrderCode": "fl123456",
 * "BuyerId": "123456",
 * "ConsumptionChannel": "feilongstore",
 * "OpenId": "feilong888888ky"
 * }
 * 
* *
* * @author feilong * @see json format 需要支持修改key的名字 * @since 1.9.3 */ public class CapitalizePropertyNameProcessor implements PropertyNameProcessor{ /** Singleton instance. */ public static final PropertyNameProcessor INSTANCE = new CapitalizePropertyNameProcessor(); /** * Instantiates a new capitalize property name processor. */ private CapitalizePropertyNameProcessor(){ } //--------------------------------------------------------------- /* * (non-Javadoc) * * @see net.sf.json.processors.PropertyNameProcessor#processPropertyName(java.lang.Class, java.lang.String) */ @Override public String processPropertyName(@SuppressWarnings("rawtypes") Class beanClass,String currentPropertyName){ return StringUtils.capitalize(currentPropertyName); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy