使用 Gson 将 Json 放入数组

Put Json In to Array using Gson

你好所以我正在使用 Yandex 免费工具编写在线翻译器。 我有这个程序,当用户点击 btn_translate 时,我从组合框获取来自和到语言,然后从文本标签获取文本。通过 curl 命令将其发送到服务器。 请记住,我是这个领域的初学者,所以我的代码可能有很多问题...

这是 url 示例:

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

这里是 yandex 返回的 Json:

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

所以这是我的问题: 我想访问此 Json 中的第 3 项,如您所见,它是 "text" 我应该怎么做?

我正在使用 Gson,但我不知道如何将其放入 Json 我正在接收一个数组,如下所示:

数组[0] = 200(代码)

数组[1] = "en-fa" (朗)

数组[2] = "سلام"(文本)

这是我的代码(btn 推送部分):

                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();
                }

如果你能向我解释我的尝试是如何工作的,那就太棒了! 谢谢。

只需稍微改变您阅读回复的方式,您就可以像下面这样:

JsonObject jsonObj = new JsonParser().parse(reader).getAsJsonObject()
jsonObj.get("code") ==> 200
jsonObj.get("lang") ==> "en-fa" 
jsonObj.get("text").getAsString()  ==> "سلام"