gpt4 book ai didi

java - 用Java(不是html)解析网页中的文本

转载 作者:行者123 更新时间:2023-11-30 04:09:46 24 4
gpt4 key购买 nike

我使用此代码从网站下载字符串:

static public String getLast() throws IOException {
String result = "";
URL url = new URL("https://www.bitstamp.net/api/ticker/");
BufferedReader in = new BufferedReader(new InputStreamReader(
url.openStream()));
String str;
while ((str = in.readLine()) != null) {
result += str;
}
in.close();
return result;
}

当我打印此方法的结果时,这就是我得到的:

{"high": "349.90", "last": "335.23", "timestamp": "1384198415", "bid": "335.00", "volume": "33743.67611671", "low": "300.28", "ask": "335.23"}

这正是您打开 URL 时显示的内容。这对我来说效果很好,但如果有更有效的方法,请告诉我。

我需要提取的是335.23。这个数字不断变化,但“高”、“最后”、“时间戳”等词语始终保持不变。我需要将 335.23 提取为 double 值。这可能吗?

编辑:

已解决

String url = "https://www.bitstamp.net/api/ticker/";
try {
JsonFactory factory = new JsonFactory();
JsonParser jParser = factory.createParser(new URL(url));
while (jParser.nextToken() != JsonToken.END_OBJECT) {

String fieldname = jParser.getCurrentName();
if ("last".equals(fieldname)) {
jParser.nextToken();
System.out.println(jParser.getText());
break;
}

}
jParser.close();

} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JarException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

最佳答案

这是 JSON。使用一个好的解析器,如 Jackson 。还有不错的Tutorials可用。

关于java - 用Java(不是html)解析网页中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19914616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com