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

解决方案 »

  1.   

    客户端发过来的是json格式的 你要解析成一个个数据?
      

  2.   

    加一个整合包(jsonplugin.jar),就行普通用法一样。
    页面:
       <s:text name="user.name"/>
    后会自动传到  action  中user对象的name属性
      

  3.   

    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;
        }
      

  4.   

    客户端 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里定义多少个 变量就够了没什么其他的东东...
      

  5.   

    //保存资源(多个)
    public void doSavaResource(String data) {
    JSONArray array = JSONArray.fromObject(data);
    for (Object object : array) {
    JSONObject json = (JSONObject)object;
    ResourceBean resourceBean = (ResourceBean) JSONObject.toBean(json,ResourceBean.class);
    if(resourceBean.getId() != null){
    Resource resource = this.resourceDAO.get(resourceBean.getId());
    //BeanUtils.copyProperties(resourceBean, resource);
    resource.setComponent(resourceBean.getComponent());
    resource.setDescription(resourceBean.getDescription());
    resource.setIcon(resourceBean.getIcon());
    resource.setName(resourceBean.getName());
    resource.setSort(resourceBean.getSort());
    resource.setType(resourceBean.getType());
    if(resourceBean.getParent() == null){
    resource.setParent(null);
    }
    this.resourceDAO.update(resource);

    }else{
    Resource resource = new Resource(resourceBean);
    if(resourceBean.getParent() == null){
    resource.setParent(null);
    }else{
    resource.setParent(this.resourceDAO.get(resourceBean.getParent()));
    }
    this.resourceDAO.save(resource);

    }
    }
    }思路:如果是单个对象,解析成JSONObject,如果是一个串就解析成JSONArray
      

  6.   

    找答案  发现上面回答都木有理解楼主意思楼主的意思是 怎样得到客户端传过来的json数据  不管格式是啥  发现楼上都说的解析的和传入的   只要获取到传过来的数据了,想咋办就咋办了