首页 > 解决方案 > 解析单值 JSON 对象

问题描述

我有这样的服务器响应-

[
    {
        "status": "ok"
    }
]

在我的应用程序中,我使用 volley 加载数据:

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest({api_url}, script
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject jsonObject) {
                    // Retrieve "status" = "ok"
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError volleyError) {

                }
            });

我想将“ok”作为字符串,这样我就可以与某些东西进行比较。我怎么能得到那个?

标签: androidjson

解决方案


您在开始时收到一个 JSONArray,而不是 JSONObject。你应该更换它

    JsonArrayRequest jsonObjectRequest = new JsonArrayRequest({api_url},
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray jsonArray) {
                    JSONObject statusJson = jsonArray.optJSONObject(0);
                    String status = statusJson.optString("status");
                    Log.d("Status", "Status value == [ " + status + " ]");
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError volleyError) {

                }
            });

推荐阅读