json响应在android中获取值

时间:2017-02-22 04:51:22

标签: android json

我是android的新手并且正在努力获取json对象的值。有人可以帮助我吗?

从服务器返回的json为{"status":"active"}

我正在使用Android异步Http客户端库..

public void onSuccess(int statusCode, Header[] headers, JSONObject response) {

            try {
                JSONArray j = new JSONArray(response);
                t.setText(j.getJSONObject(0).getString('status'));//this doesn't set the text to the status
            } catch (JSONException e) {
                Log.e("MYAPP", "unexpected JSON exception", e);
            }
        }

6 个答案:

答案 0 :(得分:1)

你可以使用

JSONObject jsonObject = new JSONObject(response);

因为{"status":"active"}是JSONObject。

并使用

 t.setText(jsonObject.getString("status"));

完整代码

public void onSuccess(int statusCode, Header[] headers, JSONObject response) {

            try {
                JSONObject jsonObject = new JSONObject(response);
                t.setText(jsonObject.getString("status"));
            } catch (JSONException e) {
                Log.e("MYAPP", "unexpected JSON exception", e);
            }
        }

根据其他答案创建新JSONObject是浪费。所以直接使用它

   public void onSuccess(int statusCode, Header[] headers, JSONObject response) {

                try {

                    t.setText(response.getString("status"));
                } catch (JSONException e) {
                    Log.e("MYAPP", "unexpected JSON exception", e);
                }
            }
  

注意:创建更多实例是为了表现不佳

答案 1 :(得分:1)

它已经是一个JSON对象作为传入参数您不需要创建JSON数组或JSON对象的外部对象 试试这个。

t.setText(response.getString("status"));

答案 2 :(得分:0)

替换这个:

JSONArray j = new JSONArray(response);
t.setText(j.getJSONObject(0).getString("status"));

使用:

JSONObject j = new JSONObject(response);
t.setText(j.getString("status"));

如果你收到String作为回应你必须尝试这个希望它可以帮助你

编辑:

但是在你的情况下,JSONObject会响应所以你可以直接尝试这样:

t.setText(response.getString("status"));

答案 3 :(得分:0)

使用直接JSONObject获取值

 public void onSuccess(int statusCode, Header[] headers, JSONObject response) {

       try {
            t.setText(response.getString("status"));
        } catch (JSONException e) {
            Log.e("MYAPP", "unexpected JSON exception", e);
        }
    }

答案 4 :(得分:0)

您似乎不熟悉JSON对象和JSON数组。我会建议您在Log.i("response", response.toString())打印您的回复,然后在检查JSON validator的回复后执行实际操作。

请参阅JSON ArrayJSON object

答案 5 :(得分:0)

使用optString而不是getString,因为如果你使用getString并且键“status”没有退出,那么app可能会崩溃。

public void onSuccess(int statusCode, Header[] headers, JSONObject response) {

            try {

              t.setText(j.getJSONObject(0).optString('status'));

            } catch (JSONException e) {
                Log.e("MYAPP", "unexpected JSON exception", e);
            }
        }