代码
// 这个函数后面要用到
public String post(String strUrl)
{
String result = "";
try
{
StringBuilder document = new StringBuilder();
URL url = new URL(strUrl);
URLConnection urlConnection = url.openConnection();
//urlConnection.setRequestProperty("contentType", "GBK");
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), StandardCharsets.UTF_8));
String line = null;
while ((line = reader.readLine()) != null) document.append(line).append(" ");
reader.close();
result = document.toString();// 返回值
}
catch (Exception ex)
{
showDebug(ex.getMessage());
}
return result;
}
// 这里可以另外放到另一个函数里面
String url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=1&num=40&sort=symbol&asc=1&node=sw_sysh&symbol=&_s_r_a=init";
String resultStr = post(url);
System.out.println(resultStr);
try
{
JSONArray obj = new JSONArray(resultStr);
for (int i = 0; i < obj.length(); ++i) {
for (Iterator<String> iterator = obj.getJSONObject(i).keys(); iterator.hasNext();){
String key = (String)iterator.next();
System.out.println(key + ": " + obj.getJSONObject(i).getString(key));
}
System.out.println("============================");
}
}
catch (JSONException e)
{
e.printStackTrace();
}
注意事项
- 需要安装JSON库(可以使用maven解决)
- 导入相关包(可以使用IDEA快捷键Alt+Enter解决)
遇到的问题
例如:字符串"\u2413"(随便输入的),利用java自带的replace和replaceAll函数似乎无法将\\
转化为\
,原因可能是java一定会将\\
认作\
,所以在字符串中实际上识别不了\\
。
解决方案
采用JSON库,将字符串转化为JSON格式即可解决。
//相应的代码
JSONArray obj = new JSONArray(resultStr);