首先导入json的包
》commons-beanutils-1.7.0.jar
》commons-collections-3.1.jar
》commons-lang-2.5.jar
》commons-logging-1.1.1.jar
》ezmorph-1.0.3.jar
》json-lib-2.1-jdk15.jar
第一种方式:IO流
struts.xml文件的配置
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span><package name="jsontest01" extends="struts-default">
<action name="jsontest01" class="com.json.Json01" method="jsontest01">
<!-- 这里不需要写result -->
</action>
</package>
action文件
public String jsontest01() throws IOException {
List<String> list = new ArrayList<String>();
list.add("ygc");
list.add("ymz");
list.add("yhh");
JSONArray jsonarray = JSONArray.fromObject(list);//将list转换成json数据
String result = jsonarray.toString();
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter writer = response.getWriter();
writer.write(result);
writer.flush();
writer.close();
return NONE;
}
前台jsp文件用ajax取(这里用的是js的ajax,可以用jquery的更加简单)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>json初试</title>
<script type="text/javascript">
function getAJAX() {
var ajax = null;
try {
ajax = new ActiveXObject("microsoft-xmlhttp");
} catch(e) {
ajax = new XMLHttpRequest();
}
return ajax;
}
function getJson() {
var ajax = getAJAX();
var url = "jsontest01.action?date="+new Date().getTime();
var method = "get";
ajax.open(method,url);
var content = null;
ajax.send(content);
ajax.onreadystatechange = function() {
if(ajax.readyState == 4){
if(ajax.status == 200){
var data = ajax.responseText;
data = eval(data);
alert(data[2]);
}
}
}
}
</script>
</head>
<body>
<button οnclick="getJson()">点击</button>
</body>
</html>
这里要额外导入struts的json工具包
struts2-json-plugin-2.3.1.1.jar |
struts.xml文件配置
<span style="white-space:pre"> </span><package name="jsontest02" extends="json-default">
<action name="jsontest02" class="com.json.Json01" method="jsontest02">
<result name="success" type="json"></result>
</action>
</package>
action文件
<span style="white-space:pre"> </span>//list要写作成员变量
private List<String> list;
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
public String jsontest02() throws IOException{
list = new ArrayList<String>();
list.add("ygc");
list.add("ymz");
list.add("yhh");
return SUCCESS;
}
前台jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jsontest02</title>
<script type="text/javascript">
function getAJAX() {
var ajax = null;
try {
ajax = new ActiveXObject("microsoft-xmlhttp");
} catch(e) {
ajax = new XMLHttpRequest();
}
return ajax;
}
function getJson() {
var ajax = getAJAX();
var url = "jsontest02.action?date="+new Date().getTime();
var method = "post";
ajax.open(method,url);
ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");
var content = null;
ajax.send(content);
ajax.onreadystatechange = function() {
if(ajax.readyState == 4){
if(ajax.status == 200) {
var data = ajax.responseText;
alert(data);
var p = JSON.parse(data);
alert(p.list);
}
}
}
}
</script>
</head>
<body>
<button οnclick="getJson()">jsontest02</button>
<form action="" enctype="application/x-www-form-urlencoded"></form>
</body>
</html>
JSON将不同对象转换成json数据的方式
(1)JavaBean----->JSON
》JSONArray jsonArray = JSONArray.fromObject(city);
》String jsonJAVA = jsonArray.toString();
(2)List<JavaBean>----->JSON
》JSONArray jsonArray = JSONArray.fromObject(cityList);
》String jsonJAVA = jsonArray.toString();
(3)List<String>----->JSON
》JSONArray jsonArray = JSONArray.fromObject(stringList);
》String jsonJAVA = jsonArray.toString();
(4)Set<JavaBean>----->JSON
》JSONArray jsonArray = JSONArray.fromObject(citySet);
》String jsonJAVA = jsonArray.toString();
(5)Map<String,Object>----->JSON
》JSONArray jsonArray = JSONArray.fromObject(map);
》String jsonJAVA = jsonArray.toString();