【Java】数据转化为json格式

我们这边既然需要数据,那最好是从数据库来咯,正常来说,肯定是服务端的程序,不要前端跟数据库交互了,服务端跟数据库交互,将数据转化为json格式,客户端http请求获取json数据,然后解析,就得到一个个数据了
我们既然要连接,就需要连接数据库的包,我这边是MySQL数据库,如果自己有下的话,就更好,没有的话我这边提供一个,下载连接为mysql连接包
前面刚开始需要连接大致如下

		final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; // mysql驱动
final String DB_URL = "jdbc:mysql://localhost:3306/dzxx?useSSL=false&serverTimezone=UTC";// mysql地址
final String User = "dzxx"; // mysql数据库用户名 尽量避免root
final String Password = "12345";// mysql用户名密码 跟root不一样

我这里也是直接从java控制台了,一般是java web在后台写doGet或者doPost请求,servlet返还json数据
		System.out.println("请输入用户名::");
BufferedReader str1 = new BufferedReader(new InputStreamReader(System.in));
String username = null;
try {
username = str1.readLine();
} catch (IOException e1) {
e1.printStackTrace();
}
System.out.println("请输入密码:");
BufferedReader str2 = new BufferedReader(new InputStreamReader(System.in));
String password = null;
try {
password = str2.readLine();
} catch (IOException e1) {
e1.printStackTrace();
}

我这边用了控制台提示输入账号密码
然后后面就是数据库驱动加载、连接、写sql语句、获取返回的数据.....具体方法如下
			Class.forName(JDBC_DRIVER); // 加载驱动
Connection connection = (Connection) DriverManager.getConnection(DB_URL, User, Password);
String condition = "select * from login where user_name = '" + username + "' and user_password = '"
+ password + "'";
Statement sql = (Statement) connection.prepareStatement(condition);
ResultSet rs = sql.executeQuery(condition);
if (rs.next()){//业务逻辑代码};

接下来就是把读取的数据转化为json格式了,转化可以自己写方法,也可以直接写,如果项目大了需要重复调用的话最好写个自己的方法,我这边用的是gson,下载地址为GSON包下载
下面的代码写的if里面的业务逻辑的地方
				JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("IsSuccess", true);
jsonObject.addProperty("Code", 200);
jsonObject.addProperty("Message", "");
JsonArray array = new JsonArray();
JsonObject userInit = new JsonObject();
userInit.addProperty("user", rs.getString("user_name")); // 数组里面第一个对象
userInit.addProperty("password", rs.getString("user_password")); // 第二个
userInit.addProperty("access_token", ""); // 用户令牌 这边暂时没有做
userInit.addProperty("email", rs.getString("email_addre"));// 邮箱地址
userInit.addProperty("name", rs.getString("my_name")); // 名字
array.add(userInit); // 把上面几个json对象添加道json数组里面
jsonObject.add("Data", array);// 最外围的json对象里面添加一个名为 "Data"的json数组 核心数据源
System.out.print(jsonObject);

当然也要把else写出来
else {
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("IsSuccess", false);
jsonObject.addProperty("Code", 400); // 状态码
jsonObject.addProperty("Message", "您输入的账号或者密码有误!");
// 报错信息 如果账号密码输入错误就打印上去 前端解析打印在页面上
JsonArray array = new JsonArray();
JsonObject userInit = new JsonObject();
userInit.addProperty("user", ""); // 数组里面第一个对象
userInit.addProperty("password", ""); // 第二个
userInit.addProperty("access_token", "");
userInit.addProperty("email", "");
userInit.addProperty("name", "");
array.add(userInit);
jsonObject.add("Data", array); // 最外围的json对象里面添加一个名为 "Data"的json数组 核心数据源
System.out.println(jsonObject);

最终效果图如下DATATOJSON

blank