「將 JSON 數據傳入數據庫」有三種常見理解,方案截然不同:
json_decode、Python json.loads)。JSON 型別、PostgreSQL jsonb、SQL Server 2016+ NVARCHAR(MAX) 存文本。JSON_EXTRACT、PG jsonb_path_query、SQL Server OPENJSON)。String json = "[{\"name\":\"張三\",\"age\":25},{\"name\":\"李四\",\"age\":30}]";
List users = new Gson().fromJson(json, new TypeToken<List<User>>(){}.getType());
String sql = "INSERT INTO users(name,age) VALUES(?,?)";
try (Connection c = ds.getConnection(); PreparedStatement ps = c.prepareStatement(sql)) {
c.setAutoCommit(false);
for (User u : users) {
ps.setString(1, u.getName());
ps.setInt(2, u.getAge());
ps.addBatch();
}
ps.executeBatch();
c.commit();
}
沒有銀彈,根據業務查詢模式、數據結構穩定性、團隊技術棧選擇。現代項目常採用「關係表核心字段 + JSON 擴展字段」混合模式兼顧性能與靈活性。