Return json 从客户端到 spring 控制器的数组

Return json array from client to spring controller

我需要将数据从客户端 html 发送回 spring 控制器。 我有一个控制器,它生成一个 Json 数组,我在请求时通过 ajax 发送到 html 端。 这很好用。 问题是我需要将 Json 数组发送回另一个控制器以进行评估和更改。 如果我 post 数据并分配原始 class 的 class 对象,我会收到错误“错误请求”并且它不起作用。 如果我在消耗 post 的控制器中分配一个对象。这样可行 但我得到一个我不知道如何访问的哈希图。 我不能将它转换为另一个 class 也不能访问它来使用它。 由于我是新手,有人可以给我建议如何使用 post 在接收控制器端。

谢谢

凯尔万。

控制器代码如下

用于获取的控制器 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 post

@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: "http://localhost:8080/ajax", 类型:'POST', 数据类型:'text'、

           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);
            }
        });
@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 设置为 'Text'。将其设置为 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);
        }
    });