【发布时间】:2019-01-04 12:17:14
【问题描述】:
我无法将 json 响应作为 Map 对象。
import com.google.gson.*
import org.jsoup.*
import com.google.gson.JsonPrimitive
import com.google.gson.JsonElement
// 1 count=10 at response
fun getFilms(count: Int = 1): Unit {
var n: Int = 0
val builder: GsonBuilder = GsonBuilder()
val gson = builder.create()
while(n <= count) {
val doc: Document = Jsoup.connect("https://www.lostfilm.tv/ajaxik.php?act=serial&type=search&o=${n*10}&s=3&t=0").get()
val data = doc.body().text().trimIndent()
val prData: JsonObject = JsonParser().parse(data).getAsJsonObject()
n++
println(prData["data"].toString().replace("[", "").replace("]", ""))
}
}
使用这个依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.8.3</version>
</dependency>
我想将 JSON 响应提取为 Map,但我不能这样做,我不知道这样做,数据将可以通过 value 的 key 提取。
【问题讨论】:
-
n++import org.jsoup.* -
你想要哪张地图?请描述输出键和值
-
Naor,JSON-object 看起来像 {"data": "title": "Example", "img": "img url" etc.},我想用 key 获得价值
-
while 循环中的每个 prData 都包含具有相同键的不同数据,因为所有响应都是相同的 json 格式! ,所以你不能首先将所有内容存储在一个地图中,你需要存储一个 [request id -> json] 的地图,然后解析每个 json 。现在我在第一张地图中再次询问您要使用什么作为您要使用的键 n 或响应标题?