JAVA实现JSON中所有key首字母变小写

fastjson实现

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.ParserConfig;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializeFilter;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.BeanProperty;

public class Main {
    public static void main(String[] args) {
        // 设置FastJSON的序列化配置
        SerializeConfig serializeConfig = new SerializeConfig();
        serializeConfig.propertyNamingStrategy = PropertyNamingStrategy.LowerCaseFirstLetter;

        // 设置FastJSON的解析配置
        ParserConfig parserConfig = new ParserConfig();
        parserConfig.propertyNamingStrategy = PropertyNamingStrategy.LowerCaseFirstLetter;

        // 待转换的JSON字符串
        String jsonString = "{\"Name\": \"John\", \"Age\": 30}";

        // 将JSON字符串转换为对象
        Object obj = JSON.parse(jsonString, parserConfig);

        // 将对象转换为JSON字符串,使用上面配置的序列化策略
        String result = JSON.toJSONString(obj, serializeConfig, new SerializeFilter[0], SerializerFeature.PrettyFormat);

        // 输出结果
        System.out.println(result);
    }
}

gson实现

package com.susu.util;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
 
public class JsonUtils {
 
     /**
	 * 对JSONObject的所有首字母key转为小写
	 *
	 * @param jsonString
	 * @return 
	 */
    public static JsonObject convertKeysToLowerCase(String jsonString) {
        JsonElement jsonElement = JsonParser.parseString(jsonString);
        return convertKeysToLowerCase(jsonElement.getAsJsonObject());
    }
 
    private static JsonObject convertKeysToLowerCase(JsonObject jsonObject) {
        JsonObject newJsonObject = new JsonObject();
        for (String key : jsonObject.keySet()) {
            String newKey = key.substring(0, 1).toLowerCase() + key.substring(1);
            JsonElement value = jsonObject.get(key);
            if (value.isJsonObject()) {
                value = convertKeysToLowerCase(value.getAsJsonObject());
                newJsonObject.add(newKey, value);
            }else if(value.isJsonArray()) {
            	JsonArray jsonArray = value.getAsJsonArray();
            	JsonArray newArray = new JsonArray();
            	for(int i=0;i<jsonArray.size();i++) {
            		value = convertKeysToLowerCase(jsonArray.get(i).getAsJsonObject());
            		newArray.add(value);
            	}
            	 newJsonObject.add(newKey, newArray);
            }else {
            	newJsonObject.add(newKey, value);
            }
            
        }
        return newJsonObject;
    }
}
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值