Android GSON getAsString()方法不从JSON元素中去掉双引号?
我正在使用GSON解析这个JSON,但是当我尝试获取反序列化字符串时,仍然会在元素周围加上引号。例如,对于下面的代码:Android GSON getAsString()方法不从JSON元素中去掉双引号?,android,json,kotlin,gson,Android,Json,Kotlin,Gson,我正在使用GSON解析这个JSON,但是当我尝试获取反序列化字符串时,仍然会在元素周围加上引号。例如,对于下面的代码: val ret = gson.toJson(tempObject.getAsJsonObject("medias") .getAsJsonObject("media").getAsJsonObject("media_sources") .getAsJsonArray("media_source").get(0).asJsonObject.get(
val ret = gson.toJson(tempObject.getAsJsonObject("medias")
.getAsJsonObject("media").getAsJsonObject("media_sources")
.getAsJsonArray("media_source").get(0).asJsonObject.get("source").asString)
Log.d(JOURNAL_FETCHR_TAG, "Value of ret is: $ret")
ret的值为:
D/JournalFetchr: Value of ret is: "http://telechargement.rfi.fr/rfi/francais/audio/jff/201808/journal_francais_facile_20h00_-_20h10_tu_20180820.mp3"
我可以直接得到子字符串来解决我的问题,但我很好奇为什么asString不给我没有引号的字符串?谢谢。现在要做的是再次对字符串进行编码:
val tempObject = JsonObject().apply {
addProperty("a", "b")
}
val r0 = tempObject.get("a").asString // b
val r1 = Gson().toJson(tempObject.get("a")) // "b"
val r2 = Gson().toJson(tempObject.get("a").asString) // "b"
val r3 = Gson().toJson(tempObject.get("a").toString()) // "\"b\""
asString
返回字符串值。调用它toJson()
会添加引号。你确定额外的引号不是JSON的一部分吗?也许吧,但是当我删除asString
D/JournalFetchr:ret的值为:"http://telechargement.rfi.fr/rfi/francais/audio/jff/201808/journal_francais_facile_20h00_-_20h10_tu_20180820.mp3“如果打印整个JSON,您应该很容易检测引号是否是JSON的一部分