struts中json的使用

首先导入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>


第二种方式:struts2的json工具包

这里要额外导入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数据的方式

1JavaBean----->JSON

     JSONArray jsonArray = JSONArray.fromObject(city);

     String jsonJAVA = jsonArray.toString();

2List<JavaBean>----->JSON

        》JSONArray jsonArray = JSONArray.fromObject(cityList);

    String jsonJAVA = jsonArray.toString();

3List<String>----->JSON

        》JSONArray jsonArray = JSONArray.fromObject(stringList);

     》String jsonJAVA = jsonArray.toString();

4Set<JavaBean>----->JSON

        》JSONArray jsonArray = JSONArray.fromObject(citySet);

    String jsonJAVA = jsonArray.toString();

   (5Map<String,Object>----->JSON

        》JSONArray jsonArray = JSONArray.fromObject(map);

    》String jsonJAVA = jsonArray.toString();


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值