Java递归的将JSON所有参数的key的首字母转为大写

问题由来:

这两天对接其他部门的api接口时,发现一个参数检查始终过不去,最后被告知这个参数的首字母必须为大写,这就很恶心了!因为java object自动转出来的json首字母都是小写的!

解决方案:

网上有说用@JsonFiled @JSONProperties 注解可以解决的,但是我试了下没有成功,而且每个参数都要加,很麻烦,还有些是内部类。
因为内部类较多,我就写了一个递归的ObjectToJson转化方法。

    /**
     *递归将子类也去除null值,key首字母大写
     * @param object
     * @return
     */
    private Object genChildParamMap(Object object) {
        if (object instanceof String || object instanceof Number || object instanceof Boolean||object 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用归函数来获取json的所有key和value,以下是一个Python实现的示例代码: ```python def get_all_keys_values(json_data): all_keys = [] all_values = [] if isinstance(json_data, dict): for key, value in json_data.items(): all_keys.append(key) if isinstance(value, dict) or isinstance(value, list): sub_keys, sub_values = get_all_keys_values(value) all_keys.extend([f'{key}.{sub_key}' for sub_key in sub_keys]) all_values.extend(sub_values) else: all_values.append(value) elif isinstance(json_data, list): for item in json_data: sub_keys, sub_values = get_all_keys_values(item) all_values.extend(sub_values) all_keys.extend(sub_keys) return all_keys, all_values ``` 这个函数接收一个json数据作为参数,然后归地遍历这个json数据,将所有的key和value分别存储在两个列表中,并返回这两个列表。如果遇到嵌套的字典或列表,会归调用这个函数来获取其中的key和value。可以通过调用这个函数来获取一个json数据的所有key和value,例如: ```python import json json_data = '{"name": "John", "age": 30, "address": {"city": "New York", "state": "NY"}, "languages": ["English", "French"]}' data = json.loads(json_data) all_keys, all_values = get_all_keys_values(data) print(all_keys) print(all_values) ``` 输出结果为: ``` ['name', 'age', 'address.city', 'address.state', 'languages.0', 'languages.1'] ['John', 30, 'New York', 'NY', 'English', 'French'] ``` 注意:这个函数只适用于json数据中没有重复的key的情况,如果有重复的key,可能会导致一些key的value被覆盖。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值