使用Gson将Json放入数组



你好,我正在使用Yandex免费工具编写一个在线翻译器。我有一个程序,当用户点击btn_translate时,我从组合框中获得from和to语言,然后从文本标签中获得文本。通过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中的第三个项目,正如你所看到的,它是"文本",我应该怎么做?

我正在使用Gson,我不知道如何将我收到的Json放入这样的数组中:

数组[0]=200(代码(

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

Array[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()  ==> "سلام" 

最新更新