日期:2014-05-18  浏览次数:20827 次

struts2 怎么接收客户端的json格式数据
大虾们.
struts2 怎么接收客户端的json格式数据?
接收后,怎么去解释数据???

------解决方案--------------------
加一个整合包(jsonplugin.jar),就行普通用法一样。
页面:
   <s:text name="user.name"/>
后会自动传到  action  中user对象的name属性
------解决方案--------------------
JSON可使用专门的java包解释 
import org.json.*;
可以和web传送的相关json对象相互转化 
从requst取
String strJson = request.getParameter("jsonRequest");
可以进一步封装为JSON对象并进行必要的编码处理
strJson = decodeJSON(strJson, request.getCharacterEncoding())
自定义的转化 Map --> JSONObject
public static final JSONObject getJSONColumns(Map columnInfos)
    {
        JSONObject jsonColumns = new JSONObject();
        for(Iterator entryIter = columnInfos.entrySet().iterator(); entryIter.hasNext();)
        {
            java.util.Map.Entry entryColumn = (java.util.Map.Entry)entryIter.next();
            String columnId = (String)entryColumn.getKey();
            ColumnInfo columnInfo = (ColumnInfo)entryColumn.getValue();
            JSONObject jsonColumn = getJSONColumn(columnInfo);
            try
            {
                jsonColumns.put(columnId, jsonColumn);
            }
            catch(JSONException je)
            {
                logger.error(je.getMessage(), je);
            }
        }

        return jsonColumns;
    }
------解决方案--------------------
客户端 AJAX(jquery版本):

$.post(url,{name:"张山",age:20},function(data){});

从这里面可以看到: 

参数 {name:"张山",age:20} 是一个 json 对象,

其实后台 action 接受很接单,只需要定义 两个变量, name,age,然后生成get/set就可以了,

PS:所谓的json 不过就 key:value 的形式, 前端json 有多少个key,你action里定义多少个 变量就够了

没什么其他的东东...
------解决方案--------------------


//保存资源(多个)
public void doSavaResource(String data) {
JSONArray array = JSONArray.fromObject(data);
for (Object object&n