1:是拼接需要的json数据。
2:是用servlet的内置对象response返回到前台。
3:String 类型的数据可以不用借助任何工具直接返回,只要把它拼接对了就可以。如我需要返回一个{“success”:true,“msg”:“修改失败!”}的json(注意,java里的引号要用的转义字符“\”)。
4:如果需要返回的是一个list或者别的类的化,需要用到JSONArray的辅助工具类,然后使用response.getWriter().print(),返回到打到前台。方法2:用Spring框架。
5:如果你使用了Spring框架那就更简单了,你只需要在你的方法返回的时候加一个@ResponseBody的注解就可以了。就这么简单。注意第一种方法,拼接json串的时候需要用的到双引号的地方添加转义字符。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class HttpRequestUtil {
/**
* 从url请求中获得返回的字符串
*
* @param requestUrl
* @return JSON字符串
*/
public static String HttpRequest(String requestUrl) {
StringBuffer sb = new StringBuffer();
InputStream ips = getInputStream(requestUrl);
InputStreamReader isreader = null;
try {
isreader = new InputStreamReader(ips, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
BufferedReader bufferedReader = new BufferedReader(isreader);
String temp = null;
try {
while ((temp = bufferedReader.readLine()) != null) {
sb.append(temp);
}
bufferedReader.close();
isreader.close();
ips.close();
ips = null;
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
/**
* 从请求的URL中获取返回的流数据
* @param requestUrl
* @return InputStream
*/
private static InputStream getInputStream(String requestUrl) {
URL url = null;
HttpURLConnection conn = null;
InputStream in = null;
try {
url = new URL(requestUrl);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.setRequestMethod("GET");
conn.connect();
in = conn.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
return in;
}
}
这个看你什么样的需求了,如果你是要在服务器抓取数据,那么使用HttpClient来模拟请求,然后搞一个java 转json的包,将字符串转化为对象,进行处理,TttpClient的使用方法你可以直接搜索一下,有例子的。 如果你是在网页中用到,那么直接使用Ajax请求该路径,使用eval()方法将字符串转为JavaScript对象,进行处理,这样可以省去服务器的开销。
如果是使用java获取Json数据可以使用HttpClient 如果要解析json数据,我推荐用js的eval()方法。