java - 解析从谷歌翻译的 translate_a 返回的响应

标签 java google-translate

我目前正在尝试使用 Google 翻译的“免费”API 翻译字符串。

function我目前有以下内容:

static String sourceLang = "en";
static String targetLang = "de";

public static void translate(String msg) throws Exception {

    msg = URLEncoder.encode(msg, "UTF-8");
    URL url = new URL("http://translate.googleapis.com/translate_a/single?client=gtx&sl=" + sourceLang + "&tl="
            + targetLang + "&dt=t&q=" + msg + "&ie=UTF-8&oe=UTF-8");

    URLConnection uc = url.openConnection();
    uc.setRequestProperty("User-Agent", "Mozilla/5.0"); 

    BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream(), "UTF-8"));
    String inputLine;

    while ((inputLine = in.readLine()) != null) {
        System.out.println(inputLine);
    }

    in.close();
}

例如返回我

[[["Das ist ein Satz","This is a sentence",,,3]],,"en"]

[[["Dies ist ein weiterer Satz mit einigen Symbolen \"$% \u0026 / () = º ~ ª ^","This is another sentence with a few symbols \"$%\u0026/()=º~ª^",,,3]],,"en"]

我一直在研究一些 JSON 解析方法,但找不到将其转换为 JSON 然后将这 3 个字符串解析为三个 String 或 String[] 的方法。

关于如何正确完成它的任何想法?

提前致谢!

最佳答案

这段代码可以解决问题:

    Pattern p = Pattern.compile("\"([^\"]*)\"");
    String line = "yourtext";
    Matcher m = p.matcher(line);
    while (m.find()) {
        System.out.println("m.group(1)=" + m.group(1));
    }

关于java - 解析从谷歌翻译的 translate_a 返回的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41028831/

相关文章:

java - CallBack 给出 NullPointEreException

java - 获取包含垃圾数据的字符串的特定部分

google-app-engine - 谷歌翻译获取同义词和例子

c# - 谷歌翻译 C#

java - ImageView.setColorFilter 的 NoSuchMethod 错误

java - 此事务应通过提交调用完成

c# - Google Translation API 甚至无法处理一页长的文档

html - 请求 Google Text-To-Speech API

java - 当包含在 GridBagLayout 中时,如何使我的面板换行文本并增加高度而不是宽度?

css - 谷歌翻译下拉窗口不会在较小的屏幕上调整大小