gpt4 book ai didi

java - 将一个 Json 与另一个 Json 组合(JAVA)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:57:13 25 4
gpt4 key购买 nike

所以我已经用一个 Json 成功地完成了所有工作。现在我有另一个类,我只想获得一个属性。我现在有一个电影数据库类(它使用 JSON 并获取所有信息),现在我想添加一个来自 Youtube API 的预告片。所以基本上我需要将它添加到同一个 JSON 中,以便我将来更容易将它放入 HTML 中。唯一的问题是我无法让它工作。使用此方法时出现语法错误 JSON。

编辑代码 1.1:

YouTube 属性:

public class FilmAttribut {
private String title = "";
private String release = "";
private int vote = 0;
private String overview = "";
private String poster = "";
private String trailer = "";

// getters + setters stripped
}

YouTube 类:

public class Youtube {

FilmAttribut movie = new FilmAttribut();
public void search(String trailer, FilmAttribut in) {

HttpResponse<JsonNode> response;
try {
response = Unirest.get("https://www.googleapis.com/youtube/v3/search?key=[app key here]&part=snippet")
.queryString("q", trailer + " trailer")
.asJson();

JsonNode json = response.getBody();
JSONObject envelope = json.getObject();
JSONArray items = envelope.getJSONArray("items");

in.setTrailer("https://youtu.be/" + items.getJSONObject(0).getJSONObject("id").getString("videoId")); //Gives me error here

}
catch (JSONException e) {

e.printStackTrace();
} catch (UnirestException e) {
e.printStackTrace();
}

return null;

}
}

和主要方法

public class WebService {

public static void main(String[] args) {
setPort(1337);

Gson gson = new Gson();
Youtube yt = new Youtube();
MovieDataBase mdb = new MovieDataBase();




get("/search/:movie", (req, res) -> {
String titel = req.params(":movie");
FilmAttribut film = mdb.searchMovie(titel);
yt.search(titel, film);
String json = gson.toJson(film);
return json;

});

所以我认为问题是你不能有两个 gson.toJson(film) + gson.toJson(trailer); 因为它使 JSON 两次,其中一次用于电影(又名电影),然后创建一个带有预告片的新 json,这会导致语法错误。

所以我真正的问题是,是否可以像我现在在 youtube 上那样开设另一个类。将信息发送到我拥有所有属性的属性类,然后在主方法中运行它,以便我可以在一个 JSON 中获取所有 JSON。

最佳答案

如果我能很好地理解您的要求,是的,您可以,但我会做类似的事情:

public void search(String trailer, FileAttribut in) {
// fetch the trailer from youtube (NB: you should use getters/setters, not public fields)
in.setTrailer("https://youtu.be/" + items.getJSONObject(0).getJSONObject("id").getString("videoId"));
}

和:

FilmAttribut film = mdb.searchMovie(titel); 
yt.search(titel, film); // pass "film" to "fill" its trailer
return gson.toJson(film);

public String search(String trailer) {
// fetch the trailer from youtube
return "https://youtu.be/" + items.getJSONObject(0).getJSONObject("id").getString("videoId");
}

和:

FilmAttribut film = mdb.searchMovie(titel); 
film.setTrailer(yt.search(titel));
return gson.toJson(film);

关于java - 将一个 Json 与另一个 Json 组合(JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33240250/

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