解析json
action如下:
package com.gleepay.action;
import java.io.IOException;
import com.opensymphony.xwork2.ActionSupport;
public class Ajaxaction extends ActionSupport{
private String message;
public String showInfo() {
System.out.println(this.username);
this.message="[{'province':'湖北省'},{'province':'云南省'},{'province':'广东省'}]";
return SUCCESS;
}
public String getMessage() {
return message;
}
}
jsp代码如下:用eval函数将后台传过来的数据解析成一个json,然后构造一个下拉菜单
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<script language="javascript" src="${pageContext.request.contextPath}/js/validate.js"></script>
<script language="javascript" src="${pageContext.request.contextPath}/js/jquery-1.4.2.js"></script>
<script type="text/javascript">
$(function() {
var para = {};
$.post("ajaxAction_showInfo.action", para, function(data) {
alert(data.message);
//var json=eval(data.message);
//上面的方式和下面的方式都能实现解析,下面的方式是强制解析
var json = eval("(" + data.message + ")");
alert(json);
//alert(json[0].province);
for ( var i = 0; i < json.length; i++) {
//取得省份
var provinceValue = json[i].province;
var opt = document.createElement("option");
opt.setAttribute("value", provinceValue);
//用省份创建文本节点
var optValue = document.createTextNode(provinceValue);
opt.appendChild(optValue);
$("#pro").append($(opt));
}
});
});
</script>
</head>
<body>
<select id="pro"></select>
</body>
</html>
后台可以用 JSONArray json=JSONArray.formObject(list); json.toString()传到后台就是个json了,
这就实现了list转json
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号