Py学习  »  Git

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

脚本之家 • 4 月前 • 175 次点击  
将 脚本之家 设为“星标
第一时间收到文章更新
图片
来源 | 程序媛山楂(ID:shanzhacoder)

刚看到有网友发问:“一个人写代码也用 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 坑发出来一起聊聊,我们下篇见 ✌️

END

图片

  推荐阅读:
  1. 工程师提离职,领导挽留不住,最后来一句:“你得把你的技术教会一个人,才能走。”
  2. 等了6年,这个微信功能要回归了
  3. 互联网 45w 年薪和电网,怎么选?
  4. emoji跨平台显示差异惹争议,苹果用户表示头大

  5. 乔布斯挚友去世!胰腺癌再夺硅谷天才,曾写下苹果「创世代码」

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/184575