我从JSONArray
读取字符串时遇到问题。代码周围的try-catch
引发未找到元素的错误。我怀疑这与空格有关,空格是行的每个键末尾的字符。
JSONArray dettaglio = result.getJSONArray("dettaglioAttivita");
for(int i = 0; i <dettaglio.length(); i++){
JSONObject row = dettaglio.getJSONObject(i);
String durata = row.getString("Durata ");
Toast.makeText(getApplicationContext(), durata.toString(), Toast.LENGTH_LONG).show();
}
JSON响应:请注意,JSONObject
的键字符串末尾有空格。
"dettaglioAttivita": [
{
"Unità Dididattica ": " FISICA - MODULO A - [UD-1] ",
"Tipo Attività ": " LEZ",
"Tipo Formaz. ": " Base",
"Settore ": " FIS/01 - FISICA SPERIMENTALE",
"CFU ": " 6",
"Durata ": " 48"
},
{
"Unità Dididattica ": " FISICA - MODULO B - [UD-2] ",
"Tipo Attività ": " LEZ",
"Tipo Formaz. ": " Base",
"Settore ": " FIS/01 - FISICA SPERIMENTALE",
"CFU ": " 6",
"Durata ": " 48"
}
],
例外是:
org.json.JSONException
:杜拉塔(Durata)没有价值
答案 0 :(得分:0)
刚刚在Kotlin中进行了测试,对我来说,它可以处理空格:
backgroundColor
打印出用于:
import org.json.JSONObject
fun main(args : Array<String>) {
val json = """
{
"dettaglioAttivita": [
{
"UnitàDididattica ":"FISICA - MODULO A - [UD-1]",
"TipoAttività ":"LEZ",
"TipoFormaz. ":"Base",
"Settore ": "FIS/01 - FISICA SPERIMENTALE",
"CFU":" 6",
"Durata ":" 48"
},
{
"UnitàDididattica ":"FISICA - MODULO B - [UD-2]",
"TipoAttivit à":"LEZ",
"TipoFormaz ":"Base",
"Settore ":"FIS/01 - FISICA SPERIMENTALE",
"CFU ":"6",
"Durata ":" 48"
}
]
}
"""
println(json)
try {
val jsonObject = JSONObject(json)
val dettaglio = jsonObject.getJSONArray("dettaglioAttivita")
for (i in 0 until dettaglio.length()) {
val row = dettaglio.getJSONObject(i)
println("ROW: $row")
val durata = row.getString("Durata ")
println("DURATA: $durata")
}
}catch (e : Throwable){
println(e.toString())
}
}