解析JSON字符串在Android Studio



我试图将字符串转换为JSON对象,但我得到以下错误消息

E/JSON Parser: Error parsing data org.json.JSONException: Value {"data":[{"temperaturaussen":12,"feuchtaussen":77.41,"temperaturbadezimmer":21}]} of type java.lang.String cannot be converted to JSONObject

我像这样得到我的数据

val url = URL("url")
val connection : URLConnection = url.openConnection()
connection.connect()
val bufferedInputStream = BufferedInputStream(connection.getInputStream())
val bufferedReader : BufferedReader = bufferedInputStream.bufferedReader(Charsets.UTF_8)
val stringBuffer = StringBuffer()
for (line in bufferedReader.readLines()){
stringBuffer.append(line)
}
bufferedReader.close()
val fullJson : String = stringBuffer.toString()

我知道来自url的Json字符串是有效的,因为我在https://jsonformatter.curiousconcept.com/上检查了它,它看起来像这样

"{"data":[{"temperaturaussen":12,"feuchtaussen":77.41}]}"

但为什么我得到这个错误信息时,我试图将其转换成JSON?

try {
val dataJson = JSONObject(fullJson)
} catch (e: JSONException) {
Log.e("JSON Parser", "Error parsing data $e")
}

似乎你想解析的JSON不是JSON对象(即{...}),而仅仅是一个JSON字符串(即"..."),因为引号似乎转义了(即"而不是")。

例如这是一个有效的JSON字符串,但是不是一个有效的JSON对象:

"{"data":[{"temperaturaussen":12,"feuchtaussen":77.41}]}"

如果这是一个有效的JSON对象:

{"data":[{"temperaturaussen":12,"feuchtaussen":77.41}]}

尝试使用下面的代码

try {
val dataJson = new JSONObject(fullJson)
} catch (e: JSONException) {
Log.e("JSON Parser", "Error parsing data $e")
}

相关内容

最新更新