在 JTable 中显示 JSONArray Java

Display JSONArray in JTable Java

我有一个 JSONArray 需要插入到一个 JTable 中,但是根据我用谷歌搜索的结果,我得出的结论是将一个 JSONArray 插入到一个JTable 通过将其转换为 JSONObject 然后我可以使用 ArrayList.

将其插入 JTable

我已经设法将 JSONArray 转换为 JSONObject,如下所示,但是当我尝试将其转换为 Arraylist 然后插入时,我卡住了进入JTable。你能告诉我怎么做吗?有没有更简单的方法将 JSONArray 插入 JTable

JSONArray:

[{"FOODID":"Jus Alpukat","PRICE":"7000","NUM":"1","RES":"7000.0","ORDERID_FK":""},{"FOODID":"Ice Cream","PRICE":"5000","NUM":"10","RES":"50000.0","ORDERID_FK":""}]

JSONObject:

 {"RES":"7000.0","PRICE":"7000","NUM":"1","FOODID":"Jus Alpukat","ORDERID_FK":""}
 {"RES":"50000.0","PRICE":"5000","NUM":"10","FOODID":"Ice Cream","ORDERID_FK":""}

JSONArray 到 JSONObject 转换程序:

JSONArray jsonArr = new JSONArray(lineRead);
List<Data> dataList = new ArrayList<>();
for (int i = 0; i < jsonArr.length(); i++) {

    JSONObject jsonObj = jsonArr.getJSONObject(i);
    Data data = new Data();

    data.foodid = jsonObj.getString("FOODID");
    data.price = jsonObj.getString("PRICE");
    data.num = jsonObj.getString("NUM");
    data.res = jsonObj.getString("RES");

    dataList.add(data);
}

JTable 可以使用 Vector<Vector<String>> 作为简单的 table 模型。因此,如果您只需要显示值,则可以使用以下相当简单的方法:

    JSONArray jsonArr = new JSONArray(lineRead);
    Vector<Vector<String>> dataList = new Vector<>();
    for (int i = 0; i < jsonArr.length(); i++) {

        JSONObject jsonObj = jsonArr.getJSONObject(i);
        Vector<String> data = new Vector<>();

        data.add(jsonObj.getString("FOODID"));
        data.add(jsonObj.getString("PRICE"));
        data.add(jsonObj.getString("NUM"));
        data.add(jsonObj.getString("RES"));

        dataList.add(data);
    }

    Vector<String> columnNames = new Vector<>();
    columnNames.add("foodId");
    columnNames.add("price");
    columnNames.add("num");
    columnNames.add("res");

    JTable table = new JTable(dataList, columnNames);

要获得更复杂的解决方案,您必须使用 TableModel