gpt4 book ai didi

java - 解密 JSON 响应 googles topic api

转载 作者:行者123 更新时间:2023-12-01 14:18:47 25 4
gpt4 key购买 nike

我正在使用护目镜的 search api获取主题 id,用于从主题 api 获取 JSON 响应。返回的响应如下所示

{
"id":"/m/01d5g",
"property":{
"/amusement_parks/ride_theme/rides":{...},
"/award/ranked_item/appears_in_ranked_lists":{...},
"/book/book_character/appears_in_book":{
"valuetype":"object",
"values":[
{
"text":"Inferno",
"lang":"en",
"id":"/m/0g5qs3",
"creator":"/user/duck1123",
"timestamp":"2010-02-11T04:00:59.000Z"
},
{
"text":"Batman: Year One",
"lang":"en",
"id":"/m/0hzz_1h",
"creator":"/user/anasay",
"timestamp":"2012-01-25T11:05:03.000Z"
},
{
"text":"Batman: The Dark Knight Returns",
"lang":"en",
"id":"/m/0hzz_sb",
"creator":"/user/anasay",
"timestamp":"2012-01-25T11:22:17.001Z"
},
{
"text":"Batman: Son of the Demon",
"lang":"en",
"id":"/m/071l77",
"creator":"/user/wikimapper",
"timestamp":"2013-07-11T15:20:32.000Z"
},
{
"text":"Joker",
"lang":"en",
"id":"/m/04zxvhs",
"creator":"/user/wikimapper",
"timestamp":"2013-07-11T16:58:37.000Z"
},
{
"text":"Arkham Asylum: A Serious House on Serious Earth",
"lang":"en",
"id":"/m/0b7hyw",
"creator":"/user/wikimapper",
"timestamp":"2013-07-11T19:26:54.000Z"
}
],
"count":6.0
},
"/book/book_subject/works":{...},
"/comic_books/comic_book_character/cover_appearances":{...},
...
}
}

我想破译这个,以便我可以获得相关信息,例如,“/book/book_character/appears_in_book”本身是一个用于响应的属性,我想要从中得到的唯一值是“文本”和“id”例如“text”:“ bat 侠:第一年”“id”:“/m/0hzz_1h”。由于响应没有固定的属性,并且可能根据响应 ID 的不同而变化。我如何在 java 类中隐藏此 JSON 响应,在该类中我可以将“/book/book_character/appears_in_book”存储为一个序列化类,并包含具有 idtext 等值的集合和 appears_in_book 作为类的名称变量。

我考虑过GSON去做这个。由于属性名称不是常量,我无法使用它来将 JSON 转换为 Java 对象。目前我正在通过硬编码迭代每个属性并将它们填充到java变量中。

如果有人可以提供有效的方法来做到这一点,我将不胜感激。

最佳答案

您可以使用 Java 中的反射动态地执行此操作,但这是 Java 的一项高级功能,它可能会使您的代码比实际需要的更加复杂。

参见:Dynamically create an object in java from a class name and set class fields by using a List with data

一个更简单的替代方案是将 JSON 解析为一堆嵌套的映射和列表,与 JSON 数据中给出的完全一样。

参见:How to parse JSON in Java

关于java - 解密 JSON 响应 googles topic api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17842757/

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