Поместите Json в массив с помощью Gson - PullRequest
0 голосов
/ 05 мая 2020

Здравствуйте Итак, пишу онлайн-переводчик с помощью бесплатного инструмента Яндекс. У меня есть эта программа, которая, когда пользователь нажимает на btn_translate, я получаю от и до языков из comboBoxes, а затем я получаю текст из текстовой метки. Отправляем его на сервер с помощью команды curl. имейте в виду, что я новичок в этой области, поэтому у моего кода может быть множество проблем ...

Вот пример URL:

https://translate.yandex.net/api/v1.5/tr.json/translate?key=API-KEY&lang=en-fa&text=hi

и вот Json, возвращаемый яндексом:

{"code": 200, "lang": "en-fa", "text": ["سلام"]}

Итак, вот мой вопрос: я хочу получить доступ к третьему элементу в этом Json, поскольку вы можете видеть, что это «текст», как мне сделать это?

Я использую Gson, и я не знаю, как поместить это Json я получаю в массив, который выглядит следующим образом:

Array [0] = 200 (Код)

Array [1] = "en-fa" (Lang)

Array [2] = "سلام" (текст)

и вот мой код (btn push part):

                String command = IInfo.CMD +"&lang="+combo_from.getSelectedItem()
                        +"-"+combo_to.getSelectedItem()+"&text="+txt_word.getText();

                System.out.println(command);
                System.out.println("btn pushed");

                try(Reader reader = new InputStreamReader(
                        Runtime.getRuntime().exec(command).getInputStream()
                )){
                    JsonElement json = new JsonParser().parse(reader);
                    System.out.println(json);
                } catch (IOException e)
                {
                    e.printStackTrace();
                }

, и если вы объясните мне, как работает моя попытка, это будет здорово! спасибо.

1 Ответ

0 голосов
/ 05 мая 2020

С небольшими изменениями того, как вы читаете ответ, вы можете сделать это, как показано ниже:

JsonObject jsonObj = new JsonParser().parse(reader).getAsJsonObject()
jsonObj.get("code") ==> 200
jsonObj.get("lang") ==> "en-fa" 
jsonObj.get("text").getAsString()  ==> "سلام" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...