我有一个Json回复:
{
"action":"true",
"0":{
"_id":"58ca7f56e13823497175ee47"
}
}
我希望在TextView
中显示 _id 值。
我试过了:
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("0");
String message = object.getString("_id");
txtstorename.setText(message);
我可以在Android Monitor中看到Json响应但我的TextView
中什么都没有!
有什么问题?
答案 0 :(得分:0)
这将是正确的方法
JSONObject object = new JSONObject(response);
JSONObject object1 = object.get("0");
String message = object1.get("_id");
txtstorename.setText(message);
答案 1 :(得分:0)
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);
JSONObject jsonObj= object.getJSONObject("0");
String message = jsonObj.getString("_id");
txtstorename.setText(message);
答案 2 :(得分:0)
您正在JsonObject
进入JsonArray
。这就是为什么有问题。
替换此行:
JSONArray Jarray = object.getJSONArray("0");
使用此
JsonObject jsonObject = object.getJSONObject("0");
答案 3 :(得分:0)
当接收JSON Object作为响应时,使用JsonObjectRequest而不是StringRequest
JsonObjectRequest request= new JsonObjectRequest(Request.Method.POST,url, null,new Response.Listener<JSONObject>(){@Override
public void onResponse(JSONObject response) {
try {
JSONObject jsonObj= response.getJSONObject("0");
String message = jsonObj.getString("_id");
txtstorename.setText(message);},null);
答案 4 :(得分:-1)
您必须使用getJSONObject("0")
而不是getJSONArray
,因为0
不是数组。
数组将由[ /* stuff here */ ]
表示,您没有。
您有一个包含action
和0
的Json对象,action
是一个字符串,而0
是一个对象。
在0
对象中,您有一个_id
字段,您尝试访问该字段。
所以在你的情况下,如下所示:
// get the object
JSONObject object0 = object.getJSONObject("0");
String message = object0.getString("_id");