V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  a1b2c3T  ›  全部回复第 20 页 / 共 48 页
回复总数  949
1 ... 16  17  18  19  20  21  22  23  24  25 ... 48  
@ronman #4 是微软自带的那个吗?
96 天前
回复了 qi1 创建的主题 问与答 有的时候分不清梦和现实
@a1b2c3T #11 既视感
96 天前
回复了 qi1 创建的主题 问与答 有的时候分不清梦和现实
@dylanqqt #4 这好像有个专门的名词解释这个
如果你抑郁了,那么你活在过去;
如果你焦虑了,那么你活在未来。
只有平静下来,才是活在当下。别想太多,把握好当下的生活和时光就是最好的选择
这个不知道啊,一直用的 infinity pro 标签页,老哥可以试试
我记着有个推特机器人就可以搞这个
想起几年前我骑摩托被四轮追尾,我在路口等红绿灯,后面的小车没刹住直接给我干倒了,车主本来想给我 200 私了,我直接报警过来定责,最后修摩托车花了 2000 多
96 天前
回复了 apollo007 创建的主题 Android 打算给老人换一个手机,求推荐
@apollo007 #11 王小波
@CEBBCAT #13 啊我去,不知道还有这个规定啊。版规在哪儿呢,我去学习一下
96 天前
回复了 oldersnail 创建的主题 职场话题 快奔四了,危机感越来越重
@jay4497 #7 对,想明白了就无所吊谓,开心就好,及时行乐
96 天前
回复了 llxvs 创建的主题 咖啡 咖啡真是好东西
@kuawo #10 “牲畜累了还知道休息,而牛马累了只会自己花钱买咖啡”
96 天前
回复了 llxvs 创建的主题 咖啡 咖啡真是好东西
我个人喝咖啡喝茶感觉都不怎么提神,倒是喜欢那种强力薄荷
96 天前
回复了 llxvs 创建的主题 咖啡 咖啡真是好东西
@arcaitan #5 不懂就问这是咋感觉出来的。。。
@EmbraceQWQ #2 这像是十年前的风格。。。
97 天前
回复了 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 的内置命名策略,可以自动将驼峰格式转换为下划线格式,非常方便,适用于更大规模的项目。
两种方法可以根据你的需求选择合适的实现方式。
1 ... 16  17  18  19  20  21  22  23  24  25 ... 48  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3223 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 12:44 · PVG 20:44 · LAX 04:44 · JFK 07:44
Developed with CodeLauncher
♥ Do have faith in what you're doing.