Java 从接口获取 JSON 数据解析并存入数据库
以下是一个通过 JAVA 从接口获取 JSON 数据解析并存入数据库的示例程序:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.json.JSONArray;
import org.json.JSONObject;
public class JsonToDatabase {
// JDBC连接信息
private static final String DB_DRIVER = "com.mysql.jdbc.Driver";
private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "password";
// API接口信息
private static final String API_URL = "http://example.com/api/data.json";
public static void main(String[] args) {
try {
// 加载数据库驱动
Class.forName(DB_DRIVER);
// 获取数据库连接
Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
// 调用API接口获取JSON数据
String jsonData = getJsonData(API_URL);
// 解析JSON数据并存入数据库
JSONArray jsonArray = new JSONArray(jsonData);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString('name');
int age = jsonObject.getInt('age');
String gender = jsonObject.getString('gender');
// 将数据插入数据库
insertData(conn, name, age, gender);
}
// 关闭数据库连接
conn.close();
System.out.println("Data has been inserted into database successfully.");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 从API接口获取JSON数据
*
* @param apiUrl API接口地址
* @return JSON数据字符串
* @throws Exception
*/
private static String getJsonData(String apiUrl) throws Exception {
URL url = new URL(apiUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = br.readLine()) != null) {
response.append(inputLine);
}
br.close();
return response.toString();
}
/**
* 将数据插入数据库
*
* @param conn 数据库连接
* @param name 姓名
* @param age 年龄
* @param gender 性别
* @throws SQLException
*/
private static void insertData(Connection conn, String name, int age, String gender)
throws SQLException {
String sql = "INSERT INTO users (name, age, gender) VALUES (?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setInt(2, age);
ps.setString(3, gender);
ps.executeUpdate();
}
}
此程序通过调用 API 接口获取 JSON 数据,并使用 JSON 库解析数据。然后,将数据插入到 MySQL 数据库中。通过修改数据库连接信息和 API 接口地址,可以将此程序适配到不同的环境中。
原文地址: https://www.cveoy.top/t/topic/lzZv 著作权归作者所有。请勿转载和采集!