java—从sql表创建json文件,然后可以查询该文件

n53p2ov0  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(331)

我正在尝试完成以下任务(使用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;
    }
m0rkklqb

m0rkklqb1#

你可以用 JSONParser 将文件内容解析为json,然后将其转换为 JSONObject 或者 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();
    }

相关问题