你好,我正在使用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() ==> "سلام"