将json数组从客户端返回到spring控制器

时间:2015-05-21 19:04:12

标签: json spring return

我需要将客户端html中的数据发送回spring控制器。 我有一个控制器,它生成一个Json数组,我在请求时通过ajax发送到html端。 这很好用。 问题是我需要将Json数组发送回另一个控制器以进行评估和更改。 如果我发布数据并分配原始类的类对象,我会得到错误"不好的要求"它没有用。 如果我在控制器中分配一个消耗帖子的对象。这样可行 但我得到一个我不知道如何访问的哈希映射。 我不能把它转移到另一个类,也不能访问它来使用它。 因为我是新手,所以有人可以给我一个如何消费帖子的建议 在接收控制器端。

由于

Khelvan。

控制器代码如下所述

获取控制器1

    @RequestMapping("/Person")
    @ResponseBody
    public  ArrayList<Person> ajax_Person_array()
                  {
        ArrayList<Person> Dummy = new ArrayList<Person>();


        for ( x=0; x < 5; x++ ){

             Dummy.setName("Alfon");
                Dummy.setID("5");
                Dummy.setStree("Delta");
                Dummy.setName("Neutral");

                              Person.add(Dummy);
                     }


        return Dummy;
    }

控制器2的帖子

@RequestMapping(value="/ajax", method=RequestMethod.POST,  consumes =  "application/json")
//public @ResponseBody String post( @RequestBody   Object  ajax_Person_array()) {    
    public @ResponseBody String post( @RequestBody      ArrayList<Person> ajax_Person_array()) {    
          System.out.println("First TEST");


           String Success =  "OK";

      return Success;
  } 

Html:获取ajax

                   var ajax_data;

        $.ajax({
              url: "http://localhost:8080/Person",
              async: false,
              dataType:'json',
            cache: false,
            success: function (data) {
            ajax_data = data;
            alert("success ");

            },
            error:function(){alert("something went wrong ");}
              });
    }

Html post ajax

$。AJAX({                 url:&#34; http://localhost:8080/ajax&#34;,                 键入:&#39; POST&#39;,                 dataType:&#39; text&#39;,

           data: ajax_data,
           //  data: JSON.stringify(ajax_data),
            contentType: 'application/json',
            success: function(data) { 
                alert(data);
            },
            error:function(data,status,er) { 
                alert("error: "+data+" status: "+status+" er:"+er);
               document.write(data);
            }
        });

1 个答案:

答案 0 :(得分:0)

@RequestMapping (value="/ajax", method=RequestMethod.POST, consumes = "application/json") 
public @ResponseBody JSONObject post( @RequestBody JSONObject person) {

//Pass data to a service to process the JSON
}

对于您的ajax请求,请勿将dataType设置为&#39; Text&#39;。将其设置为JSON

    $.ajax({ url: "http://localhost:8080/ajax", 
       type: 'POST', 
       dataType: 'json',
       data: JSON.stringify(ajax_data),
        contentType: 'application/json',
        success: function(data) { 
            alert(data);
        },
        error:function(data,status,er) { 
            alert("error: "+data+" status: "+status+" er:"+er);
           document.write(data);
        }
    });