Я пытаюсь проанализировать объект 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)