Разбор атрибутов данных Merriam Webster JSON, заключенных в двойной массив? - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь получить определение слова, используя документацию из API Merriam Webster - https://dictionaryapi.com/products/json#sec-2.def

В документации показана структура ответа JSON от сервера, и я смог успешноразобрать необработанные данные в просто массив, содержащий объект «смысла».

Снимок экрана с кодом и проанализированными данными enter image description here

Моя проблема в том, что я могу получить доступ к "чувственному" JSONObject, так как в данный момент я нахожусь в массиве, я могуне получить доступ к объекту чувств.Я попытался добавить .getJSONArray (0) и .getJSONObject (0) после того, как мой код и оба этих решения не сработали.

Как я могу продолжить синтаксический анализ этого JSON, который у меня сейчас есть, в строке "dt"?

                    JSONArray merriamResults = data.getJSONArray("Merriam")
                    .getJSONObject(0)
                    .getJSONArray("def")
                    .getJSONObject(0)
                    .getJSONArray("sseq")
                    .getJSONArray(0)
                    .getJSONArray(0);

1 Ответ

0 голосов
/ 02 декабря 2018

Здесь.

String json = "{\"def\":[\n" +
                "  {\n" +
                "    \"sseq\":[\n" +
                "      [\n" +
                "        [\n" +
                "          \"sense\",\n" +
                "          {\n" +
                "            \"dt\":[[\"text\",\"{bc}a {a_link|backward} somersault especially\n" +
                "              in the air\"]]\n" +
                "          }\n" +
                "        ]\n" +
                "      ]\n" +
                "    ]\n" +
                "  }\n" +
                "]}";

        try {
            JSONObject jsonObject = new JSONObject(json);
            String dt = jsonObject.getJSONArray("def")
                    .getJSONObject(0)
                    .getJSONArray("sseq")
                    .getJSONArray(0)
                    .getJSONArray(0)
                    .getJSONObject(1)
                    .getJSONArray("dt")
                    .getJSONArray(0)
                    .getString(1);
            Log.i("jsondata", dt);
        } catch (JSONException e) {
            e.printStackTrace();
        }

мой журнал:

 12-02 21:38:12.316 14174-14174/com.example.pemba.sample I/jsondata: {bc}a {a_link|backward} somersault especially
                      in the air
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...