【问题标题】:Parsing returned response from Google Translate's translate_a解析从谷歌翻译的 translate_a 返回的响应
【发布时间】:2016-12-07 22:52:49
【问题描述】:

我目前正在尝试使用 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[] 的方法。

知道应该如何正确完成吗?

提前致谢!

【问题讨论】:

    标签: java google-translate


    【解决方案1】:

    这段代码可以解决问题:

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

    【讨论】:

    • 谢谢,我会试试的!抱歉回复晚了,我昨天才收到回复通知邮件。
    猜你喜欢
    • 2011-10-26
    • 2011-09-29
    • 2019-02-01
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多