gpt4 book ai didi

Java:将 JSON 响应(逐行)添加到 JTable

转载 作者:行者123 更新时间:2023-12-02 10:14:15 25 4
gpt4 key购买 nike

我正在为学校制作一个 Java 应用程序,我想在其中从 API 中获取 JSON 格式的数据。更准确地说,我获取对象列表。每个对象都包含有关一件事的数据,例如电影数据。

返回的数据如下所示:{"page":1,"total_results":102,"total_pages":6,"results":[{"vote_count":13240,"id":597, "video":false,"vote_average":7.8,"title":"泰坦尼克号"}]}

现在,对于“结果”中的每一行电影,我想在 JTable 中显示名称。现在代码如下:

String text = searchField.getText();
String url = "https://api.themoviedb.org/3/search/movie?api_key=SECRET&query=" + URLEncoder.encode(text, "UTF-8");
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();

int responseCode = con.getResponseCode();

BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));

String inputLine;
StringBuffer buffer = new StringBuffer();
while((inputLine = in.readLine()) != null)
{
buffer.append(inputLine);
}
in.close();


DefaultTableModel table = new DefaultTableModel();
table.addColumn("Title");
jTable.setModel(table);

现在我有点陷入困境。我该去哪里?

最佳答案

最好的方法是遵循MVC design pattern并创建一个类,以便将这些 JSON 行表示为对象。然后使用现有的库将值解析到对象中。最常见的(我认为)这项工作的库是 GSON.

之后,您将拥有带有属性的对象,而不是一些 JSON 行。让我们看一个例子:

假设您得到(Persons)的 JSON 行,如下所示:

{“姓名”:约翰,“年龄”:34}

现在,您不必再弄乱这种字符串,而是创建一个 Person 类:

public class Person {
private String name;
private int age;

public Person() {
// JSON parsers need a declared default (no argument) constructor
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
}

然后用一个简单的:

Gson gson = new GsonBuilder().create();
Person p = gson.fromJson(myJsonString, Person.class);

您有一个人拥有此 JSON 字符串的值。

最后:您阅读了this question你所有的问题都解决了。干净、柔软。

关于Java:将 JSON 响应(逐行)添加到 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54784016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com