java - 从 SQL 表创建 json 文件,然后可以查询该文件
问题描述
我正在尝试完成以下任务(使用 Netbeans 11.3):
1.) 从 SQL 表的列中获取数据(字符串)。
2.) 使用 Filewriter 将数据转换并保存为 JSONArray。
3.) 查询新创建的 JSON 文件 (output.json),以便数据可用于填充文本框。
我已经完成(我认为)1和2;但我坚持如何保存 output.json 文件,以便可以访问和查询它。作为旁注,根据我的研究,我认为有更好的方法来完成这些任务(在我看来,.php 比 Java 更适合这些任务),但作为一种学习体验,我想尝试完成这个任务。
这是代码:
DatabasetoJSONScript.JS
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class DataBaseToJSon {
public static ResultSet RetrieveData() throws Exception {
String host = "jdbc:derby://localhost:1527/dbname";
String uName = "my Uname";
String uPass = "my Pass";
Connection con = DriverManager.getConnection(host, uName, uPass);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery ("Select * from Table_Name");
return rs;
}
public static void main (String args[])throws Exception {
JSONObject jsonObject = new JSONObject();
JSONArray array = new JSONArray();
ResultSet rs = RetrieveData();
while (rs.next()) {
JSONObject record = new JSONObject();
record.put("TEXT", rs.getString("TEXT"));
record.put("ANSWER", rs.getString("ANSWER"));
array.add(record);
}
jsonObject.put("RC1", array);
try {
try (FileWriter file = new FileWriter ("C:\\Users\\Owner\\Documents\\NetBeansProjects
\\HTML5Application\\public_html")) {
file.write (jsonObject.toJSONString());
}
} catch(IOException e){
System.out.println("JSON flie created....");
}
}
controller.js 的相关部分
$(document).ready(function (){
var questionBank=new Array;
var currentQuestionNumber;
var currentAnswer;
var numberOfQuestions;
var gamePosition;
var score;
$.getJSON('output.json', function(output) {
numberOfQuestions=output.RC1.length;
for(i=0;i<output.RC1.length;i++){
typeArray=[];
typeArray[1]=output.RC1[i].TEXT;
typeArray[0]=output.RC1[i].ANSWER;
questionBank[i]=typeArray;
}
解决方案
您可以使用JSONParser
将文件内容解析为 JSON,然后根据您的格式将其转换为 aJSONObject
或。JSONArray
//JSON parser object to parse read file
JSONParser jsonParser = new JSONParser();
try (FileReader reader = new FileReader("/opt/MyWork/output.json")) {
//Read JSON file
Object obj = jsonParser.parse(reader);
JSONObject jobj = (JSONObject) obj;
JSONArray arr = (JSONArray) jobj.get("RC1");
for(Object r : arr){
JSONObject record = (JSONObject) r;
System.out.println(record.get("TEXT"));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
推荐阅读
- mysql - NOT IN key word not working following mysql query ?
- mysql - 由于编码使用不当而导致数据保护受损?
- python-3.x - PySpark parquet 数据类型
- google-api - 通过 API 获取所有委托联系人
- sql - SQL Query Help - Negative reporting
- maple - why map on list generates extra []
- graphviz - Graphviz 在子图之间创建两个箭头
- mysql - 名人堂的平局(团体球员,当月是最高级别,然后是每场比赛的最高得分......)
- vb.net - 检查字符串是普通字符串还是Base64字符串问题
- webpack - 对 Webpack 4 的分割块使用静态名称