V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  a1b2c3T  ›  全部回复第 19 页 / 共 46 页
回复总数  918
1 ... 15  16  17  18  19  20  21  22  23  24 ... 46  
84 天前
回复了 llxvs 创建的主题 咖啡 咖啡真是好东西
我个人喝咖啡喝茶感觉都不怎么提神,倒是喜欢那种强力薄荷
84 天前
回复了 llxvs 创建的主题 咖啡 咖啡真是好东西
@arcaitan #5 不懂就问这是咋感觉出来的。。。
@EmbraceQWQ #2 这像是十年前的风格。。。
85 天前
回复了 QiLucis 创建的主题 计算机 rmb8000 预算,求推荐游戏笔记本!
拯救者
带个帐篷一路扎过去
如果是我我肯定是不会卖老家房子的,在外打工赚点钱该花花呗,老了回老家呆着。在成都重新买房背房贷,想想都头疼...
非要说建议,关于房子的建议没有,关于对象的倒有一个——还是分了换一个吧
@a1b2c3T #1 来自 gpt 的回答
在将 JSON 字符串转换为 Map 时,如果需要将 JSON 键的命名方式从驼峰命名法( Camel Case )转换为下划线命名法( Snake Case ),可以通过以下步骤实现:

方法一:手动转换
反序列化 JSON 字符串为 Map: 使用 Jackson 或 Gson 等库将 JSON 字符串反序列化为 Map 。
遍历 Map 并修改键名: 遍历 Map ,将每个键名从驼峰格式转换为下划线格式。
代码示例(使用 Jackson ):
java
复制代码
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;

public class CamelToSnake {
public static void main(String[] args) throws Exception {
String jsonString = "{\"userName\":\"JohnDoe\",\"userAge\":30}";

ObjectMapper objectMapper = new ObjectMapper();
// 反序列化 JSON 字符串为 Map
Map<String, Object> originalMap = objectMapper.readValue(jsonString, HashMap.class);

Map<String, Object> resultMap = new HashMap<>();

// 遍历 Map ,将驼峰转换为下划线格式
for (Map.Entry<String, Object> entry : originalMap.entrySet()) {
String snakeKey = camelToSnake(entry.getKey());
resultMap.put(snakeKey, entry.getValue());
}

// 输出转换后的 Map
System.out.println(resultMap);
}

// 将驼峰命名转为下划线命名
private static String camelToSnake(String camelCaseStr) {
StringBuilder result = new StringBuilder();
for (char c : camelCaseStr.toCharArray()) {
if (Character.isUpperCase(c)) {
result.append("_").append(Character.toLowerCase(c));
} else {
result.append(c);
}
}
return result.toString();
}
}
输出结果:
java
复制代码
{user_name=JohnDoe, user_age=30}
方法二:使用 Jackson 自定义策略
如果你希望自动将 JSON 中的字段从驼峰转换为下划线,可以使用 Jackson 的自定义命名策略来实现。

代码示例:
java
复制代码
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import java.util.Map;

public class JacksonCamelToSnake {
public static void main(String[] args) throws Exception {
String jsonString = "{\"userName\":\"JohnDoe\",\"userAge\":30}";

// 创建 ObjectMapper 并设置命名策略为下划线
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);

// 反序列化 JSON 字符串为 Map
Map<String, Object> resultMap = objectMapper.readValue(jsonString, Map.class);

// 输出转换后的 Map
System.out.println(resultMap);
}
}
输出结果:
java
复制代码
{user_name=JohnDoe, user_age=30}
说明
方法一 适用于需要手动控制转换过程的场景,可以灵活处理不同的命名转换规则。
方法二 使用 Jackson 的内置命名策略,可以自动将驼峰格式转换为下划线格式,非常方便,适用于更大规模的项目。
两种方法可以根据你的需求选择合适的实现方式。
我们公司用的企业微信,我感觉就还挺好
@fusi #10 感谢分享
85 天前
回复了 DIMOJANG 创建的主题 微信 我开始有点喜欢微信了
@Mogamigawa #34 好像是,之前有人扒过。还得是小龙,分布式存储玩明白了
85 天前
回复了 DIMOJANG 创建的主题 微信 我开始有点喜欢微信了
@cwcauc #35 确实,能不能出个把服务号也折叠一下的功能
85 天前
回复了 wzw369 创建的主题 问与答 闲鱼的三星固态挺便宜的,可以入手吗?
天上没有白掉的馅饼==
85 天前
回复了 koche 创建的主题 奇思妙想 养花养鱼的小程序
现在是不是有云养花养鱼的,就是你来养,我掏钱买食物或者肥料啥的
@HuberyPang #4 程序员不是缺少这些敏感度,我觉得程序员是高估了广大群众。。。
@xingyue #16 确实全。。。浏览了一遍 19 年到现在的活动记录 https://i.imgur.com/io2SM1h.png
@enchilada2020 #9 开场哪里能看哇老哥,不玩游戏就想看看 hh
@James2099 #13 这是说相声呢啊
@lizy0329 #37 你是在找触控板这个东西吗 hh
1 ... 15  16  17  18  19  20  21  22  23  24 ... 46  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1966 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 16:23 · PVG 00:23 · LAX 08:23 · JFK 11:23
Developed with CodeLauncher
♥ Do have faith in what you're doing.