JSON和JAVA之间的转换(struts Ajax)

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它基于JavaScript的一个子集,常常配合ajax使用,利用ajax来加载数据.
    json结束ajax的配置步骤:
    1.导包.使用json需要jar包的支持,使用前就先导入以下jar包:commons-beanutils-1.8.0.jar、commons-collections-3.2.1.jar(曾经因为没导入这个包而浪费了我一个上午的时间来检查错误,汗)、commons-lang-2.4.jar、commons-logging-1.1.jar、ezmorph-1.0.6.jar、json-lib-2.3-jdk15.jar、jsonplugin-0.32.jar;
    2.添加JsonResultType类.
    3.配置struts.xml配置文件.在没用使用json的情况下,struts.xml配置文件中的package继承的是"struts-default"即:extens="struts-default",但使用json时继承的就不再是struts-default,而是"json-default",打开jsonplugin-0.32.jar下的struts-plugin.xml文件可以看到,其package已经继承了"struts-default".在package中加入以下代码,
<result-types>
    <result-type name="json"
     class="JsonResultType所在的包">
    </result-type>
</result-types>
并在相应的Action中做以下配置,
<action name="jsonAction" class="action所在的包">
    <result name="json" type="json">
     <param name="name">json</param>
    </result>
</action>
   4.写action代码,(下面的代码注释可能不太准备,如有错误,请指出)
   private String json;//需要get/set方法
   //获得城市集合不一定一定是集合
   List list = this.service.method();
 
   //过滤不需要转换的属性
   JsonConfig con = new JsonConfig();
   con.setExcludes(new String[]{"过滤的属性"});
 
   //将list转换成JSONArray
   JSONArray array = new JSONArray();
   
   //把array转换成String
   this.json=array.toString();
 
   //是struts.xml中的action的name
    return "json";
   5.javascript调用,
   <script type="text/javascript">
       function method(){
       //请求的Action
       var url = "jsonInfo/jsonAction!showCity.action";
       //ajax调用
       var ajax = new Ajax.Request(url,{
         method:'post',
         onComplete: function(data){
            //这里获得的city是一个字符串,根据需要做相应的转换
            var city = JSON.parse(data.responseText);
          }
       });
    }
   </script>

你可能感兴趣的:(JavaScript,java,Ajax,json,struts)