社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

一个人写代码也用 git管理吗?

IT服务圈儿 • 1 周前 • 29 次点击  
来源丨经授权转自 程序媛山楂

作者 山楂

刚看到有网友发问:“一个人写代码也用 Git 吗?”作为程序员,我只能说,用Git就像吃饭要用筷子,哪怕只吃一口也是必须的。

这事本质上是对“版本管理”的理解还停留在团队协作的层面。但其实就算你是独狼开发者,也免不了改来改去、试错回滚。没有Git,代码一出事就只能靠“最终版_v2_final_final2”那种土办法,真出事了你连哭的地方都找不到。

网友们的回复我看了看,有的说“用Git是给未来的自己留条活路”,我非常认

用Git不分几人开发,而是有没有责任心和职业素养的体现。写代码的都懂:不是你不需要Git,而是你还没踩过大坑。早点养成习惯,绝对是自救。【备注:文末可领最新资料】

试题:将 JSON 字符串转换为对象

今天咱们聊点轻松又实用的:怎么把一个 JSON 字符串,优雅地转成 Java 对象。

这个问题看起来很简单是不是?但是我跟你讲,我面试的时候真被这个坑过一次!面试官非要让我用原生方式搞,我一开始写了一堆 substringsplit,结果调试了半小时还出 Bug,真的想原地退役。后来我才明白——这玩意本质上靠的是 库的力量,不是你用脑子怼出来的😤

那我们来试试用最主流、最稳的方式来搞:

Java 里解析 JSON 最常见的方式有两种:

1)用 Jackson 2)用 Gson

我先说结论:Jackson 封神,性能高、社区大、兼容性强,连 Spring Boot 内置都是它,咱还犹豫啥?

下面我直接撸个例子给你看:

import com.fasterxml.jackson.databind.ObjectMapper;

publicclass JsonToObjectDemo {
    public static void main(String[] args) {
        String json = "{\"name\":\"老鬼\",\"age\":35,\"language\":\"Java\"}";

        try {
            ObjectMapper mapper = new ObjectMapper();
            Developer dev = mapper.readValue(json, Developer.class);

            System.out.println("姓名:" + dev.getName());
            System.out.println("年龄:" + dev.getAge());
            System.out.println("语言:" + dev.getLanguage());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Developer {
    private String name;
    privateint age;
    private String language;

    // Getters and Setters 必须有,不然 Jackson 不认你
    public String getName() return name; }
    public void setName(String name) this.name = name; }

    public int getAge() return age; }
    public void setAge(int age) this.age = age; }

    public String getLanguage() return language; }
     public void setLanguage(String language) this.language = language; }
}

👆这个代码我亲测没毛病,在我本地 IntelliJ 上跑得飞快,输出如下:

姓名:老鬼  
年龄:35  
语言:Java  

是不是很香?是不是比你一个个手动解析字段强太多?!

等等,有个坑得提前说:如果你 JSON 字段和 Java 字段名不一致,怎么办?

比如:

{"user_name":"laogui"}

而你 Java 写的是:

private String userName;

这时候 Jackson 默认不认得,输出会是 null。你得加个注解👇:

@JsonProperty("user_name")
private String userName;

是不是瞬间就通了?Jackson 真的是强,配合注解能打遍各种奇葩格式的 JSON。

不过我得说句实话,如果你只是简单解析几条 JSON,Gson 也够用了。像这样:

import com.google.gson.Gson;

public class GsonDemo {
    public static void main(String[] args) {
        String json = "{\"name\":\"老鬼\",\"age\":35,\"language\":\"Java\"}";

        Gson gson = new Gson();
        Developer dev = gson.fromJson(json, Developer.class);

        System.out.println(dev.getName());
    }
}

但要注意:Gson 对时间格式、泛型集合支持不如 Jackson 健壮,我之前用 Gson 遇到过 LocalDateTime 直接炸掉,要自己写 TypeAdapter,麻烦死了。

总结一下:

✅ JSON 字符串转对象,别手撸,别手撸,别手撸!(重要的事说三遍) ✅ 首选 Jackson,用起来最稳,和 Spring Boot 原生兼容 ✅ 字段不一致就用 @JsonProperty 搞定 ✅ 嵌套复杂结构就用自动生成工具,别折磨自己 ✅ Gson也能用,但不推荐做复杂业务

以上就是今天这期干货,感兴趣的朋友可以试试,也欢迎把你遇到过的 JSON 坑发出来一起聊聊,我们下篇见。

1、CSS支持 if / else 了
2、Linux 内核是如何感知到硬件上的 NUMA 信息的?
3、10亿订单如何做分库分表?
4、为什么我还是无法理解 Transformer?
5、Gemini CLI 可不仅仅是个命令行工具~附登录问题解决方法

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/184196
 
29 次点击