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