Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:将JSON响应(逐行)添加到JTable_Java_Swing_Api_Jtable - Fatal编程技术网

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

Java:将JSON响应(逐行)添加到JTable,java,swing,api,jtable,Java,Swing,Api,Jtable,我正在为学校制作一个Java应用程序,我想从JSON格式的API获取数据。更准确地说,我获取一个对象列表。每个对象都包含关于一件事的数据,比如说电影数据 返回的数据如下所示:{“page”:1,“total_results”:102,“total_pages”:6,“results”:[{“vote_count”:13240,“id”:597,“video”:false,“vote_average”:7.8,“title”:“Titanic”}} 现在,对于“结果”中的每一行电影,我想在JTab

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

返回的数据如下所示:
{“page”:1,“total_results”:102,“total_pages”:6,“results”:[{“vote_count”:13240,“id”:597,“video”:false,“vote_average”:7.8,“title”:“Titanic”}}

现在,对于“结果”中的每一行电影,我想在
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);

现在我有点困了。我该从这里走到哪里?

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

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

假设您得到的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字符串的值


最后:你读了,所有的问题都解决了。干净柔软。

可能是定制的
表格模型,如或。