在TextView中显示json响应

时间:2017-03-18 10:38:03

标签: java android json

我有一个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中什么都没有! 有什么问题?

5 个答案:

答案 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 */ ]表示,您没有。

您有一个包含action0的Json对象,action是一个字符串,而0是一个对象。

0对象中,您有一个_id字段,您尝试访问该字段。

所以在你的情况下,如下所示:

// get the object
JSONObject object0  = object.getJSONObject("0");
String message = object0.getString("_id");