无法将java.lang.String类型的操作处的值true转换为JSONArray
我试图获取json响应的“action”值,并用textview显示它, 这是我的json: {“动作”:“正确”} 这是我的java代码无法将java.lang.String类型的操作处的值true转换为JSONArray,java,android,json,Java,Android,Json,我试图获取json响应的“action”值,并用textview显示它, 这是我的json: {“动作”:“正确”} 这是我的java代码 StringRequest stringRequest = new StringRequest(Request.Method.POST, reg_url, new Response.Listener<String>() { @Override public void onResponse(String resp
StringRequest stringRequest = new StringRequest(Request.Method.POST, reg_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject object = new JSONObject(response);
JSONArray Jarray = object.getJSONArray("action");
String message = object.getString("action");
for (int i = 0; i < Jarray.length(); i++)
{
JSONObject Jasonobject = Jarray.getJSONObject(i);
}
txtproductsenf.setText(message);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
StringRequest StringRequest=new StringRequest(Request.Method.POST,reg_url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject对象=新的JSONObject(响应);
JSONArray Jarray=object.getJSONArray(“操作”);
字符串消息=object.getString(“操作”);
for(int i=0;i
但是我在我的文本视图中什么都没有,我在Android监视器中得到了这个:
“无法将java.lang.String类型的操作的值true转换为JSONArray”
如何修复此问题?由于这一行,它出现故障:
JSONArray Jarray = object.getJSONArray("action");
action
实际上是一个JSON对象,而您正试图将其强制转换为JSONArray
,因此出现了异常
以下内容应该有效:
JSONObject object = new JSONObject(response);
String message = object.getString("action");
它只有json对象而不是json数组,因此您将按如下方式解析此json字符串
StringRequest stringRequest = new StringRequest(Request.Method.POST, reg_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject object = new JSONObject(response);
String message = object.getString("action");
txtproductsenf.setText(message);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
StringRequest StringRequest=new StringRequest(Request.Method.POST,reg_url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject对象=新的JSONObject(响应);
字符串消息=object.getString(“操作”);
txtproductsenf.setText(消息);
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});
action
不是JSONarray…使用object.getString(“action”)代码>你只有一个“动作”json对象吗?只是想知道。。。for
循环的目的是什么?它什么都没做。我想你还没有基本的JSON解析知识。你最好坚持Java命名约定。变量名称应以小写字母开头!
StringRequest stringRequest = new StringRequest(Request.Method.POST, reg_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject object = new JSONObject(response);
String message = object.getString("action");
txtproductsenf.setText(message);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});