我試圖將字串轉換為 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")
}
uj5u.com熱心網友回復:
您嘗試決議的 JSON 似乎不是 JSON 物件(即{...}),而只是一個 JSON 字串(即"..."),因為引號似乎已轉義(即\"而不是")。
例如,這是一個有效的 JSON 字串,但它不是有效的 JSON 物件:
"{\"data\":[{\"temperaturaussen\":12,\"feuchtaussen\":77.41}]}"
雖然這是一個有效的 JSON 物件:
{"data":[{"temperaturaussen":12,"feuchtaussen":77.41}]}
uj5u.com熱心網友回復:
嘗試使用以下代碼
try {
val dataJson = new JSONObject(fullJson)
} catch (e: JSONException) {
Log.e("JSON Parser", "Error parsing data $e")
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/333859.html
