我试图将字符串转换为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")
}