Я пытаюсь заполнить jtable данными json. Я пробовал какое-то решение, например
String json = "
ObjectMapper mapper = new ObjectMapper();
List<User> users = mapper.readValue(json,TypeFactory.defaultInstance().constructCollectionType(List.class, User.class));
UserTableModel model = new UserTableModel(users);
tableSkill = new JTable(model);
но eclipse выдает ошибку и просит меня создать класс User и User TableModel, поэтому я искал файл jar, чтобы импортировать его, чтобы решить эту проблему, но я не нашел его. кто-нибудь может мне помочь и сказать мне, в чем моя ошибка
Я это не создаю. Я видел пример, когда программист создал класс User, адаптированный с данными json. но в моем случае я не знаю, какими будут эти данные, потому что данные зависят от результата запроса sparql. Я нашел это (st.inf.tu-dresden.de/SalesPoint/v3.3/documentation/javadoc/…), но не знаю, как им пользоваться
Но тогда как код должен компилировать классы без ?! И если вы не знаете результат запроса SPARQL, как вы хотите отобразить его на объект домена, представленный в форме класса Java? Я не понимаю этого. Java должна скомпилировать код, прежде чем вы сможете его запустить, поэтому класс должен существовать до того, как вы запустите запрос SPARQL. Я не знаю, чего вы пытаетесь достичь ... представление результата запроса SPARQL в виде таблицы тривиально, учитывая, что, по крайней мере, для запросов SELECT это в основном набор результатов, который является более или менее набором привязок, которые также могут быть рассматривается как набор строк.
Прежде всего спасибо за ваш ответ. Я постараюсь создавать свои классы. Могу я спросить вас, как можно отобразить результаты "не json" обычного "select" в jTable? Я использую эту функцию, чтобы применить свой запрос public String runQuery (Model m, String q) {Query query = ARQFactory.get (). CreateQuery (model, queryString); попробуйте (QueryExecution qexec = ARQFactory.get (). createQueryExecution (запрос, модель)) {ResultSet actualResults = qexec.execSelect (); ByteArrayOutputStream os = новый ByteArrayOutputStream (); ResultSetFormatter.outputAsJSON (os, actualResults); вернуть os.toString ();
у вас есть ResultSet. Каждый QuerySolution в нем имеет привязки переменных. Создайте модель таблицы с этим




Вот решение, которое позволяет избежать использования User и User TableModel:
public void runQuerytotable(Model model, String queryString, JTable table,int columns) {
Query query = ARQFactory.get().createQuery(model, queryString);
QueryExecution qexec = ARQFactory.get().createQueryExecution(query, model);
ResultSet rs = qexec.execSelect();
DefaultTableModel m = (DefaultTableModel) table.getModel();
m.setColumnCount(columns);
String[] columnsName = {"URI","label"};
m.setColumnIdentifiers(columnsName);
while(rs.hasNext()) {
QuerySolution sol = rs.nextSolution();
RDFNode URI = sol.get("s");
RDFNode Label = sol.get("o");
m.addRow(new Object[]{URI,Label});
}
}
... есть ли пользователь класса Java ?! А UserTableModel?