解析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

posted @ 2013-10-04 23:49  sadan  阅读(284)  评论(0)    收藏  举报