TextView не показывает переведенный текст, проанализированный из объекта JSON - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь проанализировать объект json, используя Google Cloud Translation API, но переведенный текст не отображается в моем TextView.Я даже не уверен, был ли мой анализ выполнен правильно, но не было никаких ошибок, указывающих, что мой анализ прошел неправильно.Я думал, что у меня нет подключения к Интернету, так как я не мог выходить в Интернет с помощью chrome через эмулятор Android, но я уже добавил разрешение ИНТЕРНЕТ в свой файл манифеста Android.

Ниже моя кнопка «ПЕРЕВОД» для отображения проанализированного объекта JSON в TextView.

//Button to translate
        translatebutton = (Button) view.findViewById(R.id.translatebutton);

        mQueue = Volley.newRequestQueue(getActivity().getApplicationContext());

        translatebutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textView = (TextView) getView().findViewById(R.id.translatedtext);
                texttotranslate = (EditText) getView().findViewById(R.id.translatetextinput);

                jsonParse();

            }
        }); 

Ниже приведен код функции jsonParse ().

private void jsonParse () {
String url = "https://translation.googleapis.com/language/translate/v2?key=APIKEY&q=cheese&target=es&source=en";

    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            try {
                JSONArray jsonArray = response.getJSONArray("translations");

                for (int i = 0;  i < jsonArray.length(); i++ ) {
                    JSONObject translations = jsonArray.getJSONObject(i);

                    String translatedText = translations.getString("translatedText");

                    textView.append(translatedText);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    });

    mQueue.add(request);
}

Ниже представлен JsonObject, который я пытаюсь проанализировать.Я неправильно его проанализировал?

{
      "data": {
        "translations": [
          {
            "translatedText": "queso"
      }
    ]
  }
}

Ниже приведен логкат после того, как я нажал кнопку "ПЕРЕВОД".Я уже добавил разрешение ИНТЕРНЕТ в мой файл манифеста Android, если это поможет.

 09-26 21:39:56.086 19811-19811/project.myapplication W/System.err: org.json.JSONException: No value for translations
09-26 21:39:56.088 19811-19811/project.myapplication W/System.err:     at org.json.JSONObject.get(JSONObject.java:392)
        at org.json.JSONObject.getJSONArray(JSONObject.java:587)
        at project.myapplication.Translator$3.onResponse(Translator.java:139)
        at project.myapplication.Translator$3.onResponse(Translator.java:135)
        at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:65)
        at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
09-26 21:39:56.089 19811-19811/project.myapplication W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
...