您好我正在尝试显示存储在以下JSONObject obj
中的错误消息{"errors":["nickname is already taken,","email is already taken"]}
这是我的实施:
TextView errorMsg;
errorMsg = (TextView)findViewById(R.id.register_error);
String[] errorArray = (String[])obj.get("errors");
errorMsg.setText(errorArray[0]);
Toast.makeText(getApplicationContext(), errorArray[0], Toast.LENGTH_LONG).show();
但是在尝试运行代码时,我得到了ClassCastException
任何人都可以向我解释这个问题以及如何解决它吗?
谢谢!
答案 0 :(得分:2)
' erros'数组不是{
"message": "Test is not a function",
"error": {}
}
数组。所以在String
中获得价值
这样做。
JSONArray
你可以转换它。
JSONArray errorArray = obj.getJSONArray("errors");
答案 1 :(得分:1)
示例中的“errors”数组不是String数组(String []),它是JSONArray。
相反,做
JSONArray errorArray = obj.getJSONArray("errors");
然后,
errorMsg.setText(errorArray.getString(0));
Toast.makeText(getApplicationContext(), errorArray.getString(0), Toast.LENGTH_LONG).show();
答案 2 :(得分:1)
此处为JsonArray
而不是String array
,因此请使用 google 中的simple-json库,并使用以下代码进行解析:
JSONArray erroeArray= (JSONArray) jsonObject.get("errors");
Iterator<String> iterator = erroeArray.iterator();
while (iterator.hasNext()) {
//yourcode here
}