如何从嵌套的json volley/android检索数据

w6lpcovy  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(403)

我想从这个json中获取所有标题。我正在使用截击库。
json源:https://sheets.googleapis.com/v4/spreadsheets/1atyf5g2_a3aiahejvj595bdlxo1zogq7pngjbdv9u8q?fields=sheets.properties.title&key=aizasydley5oun8kkheby6pszjbbe8riime_9dc
我的代码:

public void getAllName(){
    String urls = "https://sheets.googleapis.com/v4/spreadsheets/1AtYF5g2_A3AiAhejVj595bDLxO1zoGq7PNGjbdV9U8Q?fields=sheets.properties.title&key=AIzaSyDLeY5OUn8KKHeBY6PSZJbBE8rIIME_9dc";

    RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, urls,
            null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            try {
                JSONObject feedObj = response.getJSONObject("sheets");
                JSONArray entryArray = feedObj.getJSONArray("properties");

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
        }
    });
    queue.add(jsonObjectRequest);
}

请告诉我如何得到所有的标题。。。短暂性脑缺血发作

i2loujxw

i2loujxw1#

您可以执行以下操作:

JSONArray jsonArray = jsonObject.getJSONArray("sheets");

List<String> titles = IntStream.range(0,jsonArray.length())
        .mapToObj(i -> jsonArray.getJSONObject(i)
                .getJSONObject("properties")
                .getString("title"))
        .collect(Collectors.toList());

输出:

[CSE522, EEE, BBA, MBA, SWE555, CSE625, CSE721, CSE250, CSE775, CSE499]
nkhmeac6

nkhmeac62#

ref:https网址:stackoverflow.com/a/49839058/13533028
从json响应中,标题数据位于表中的属性中。可以使用getjsonobject(“属性名称”)从json检索jsonobject

JSONObject jsonObject = new JSONObject(response);
    JSONObject dataArray = jsonObject.getJSONArray("sheets");

    JSONArray  properties= dataArray.getJsonObject(YOUR_ELEMENT_NO);

现在您可以用同样的方法使用properties.title,并且可以随心所欲地使用它。
另外,我建议对网络任务使用改进,因为它使网络任务更容易。

相关问题