在POST请求中获取JSON

时间:2018-06-05 11:33:38

标签: java json post request

我正在发送POST请求:

var arr = { State: 'Moscow', Age: 25 };
var url = "/google/modifiedPolygon";
$.ajax({
  url: url,
  type: 'POST',
  data: arr,
  contentType: 'application/json; charset=utf-8',
  dataType: 'json',
  async: false,
  success: function() {
      alert("msg");
  }
}); 

从后端处理:

@RequestMapping(value="/modifiedPolygon",method = RequestMethod.POST,consumes = "application/json")
public void modifiedPolygon(@RequestBody JSONObject data, HttpServletRequest request, ModelMap model) {
    System.out.println(data);
}

但我收到以下错误:

  

org.springframework.http.converter.HttpMessageNotReadableException:
  无法读取JSON:无法识别的令牌“状态”:正在等待   ('true','false'或'null')

3 个答案:

答案 0 :(得分:0)

看起来状态是服务端的布尔类型,但是您将字符串值作为状态发送。因此,验证状态服务exepcting的数据类型。

答案 1 :(得分:0)

你可以这样使用,

var arr = { state: 'Moscow', age: 25 };
var url = "/google/modifiedPolygon";
$.ajax({
  url: url,
  type: 'POST',
  data: { "dataValue": JSON.stringify(arr)},
  contentType: 'application/json; charset=utf-8',
  dataType: 'json',
  async: false,
  success: function() {
      alert("msg");
  }
});

现在,您可以从body param中获取backEnd中的“dataValue”。

答案 2 :(得分:0)

我尝试过以下Java实现,看起来很有效。

@RequestMapping(value="/modifiedPolygon",method = RequestMethod.POST,consumes = "application/json")
public ResponseEntity<JSONObject> modifiedPolygon(@RequestBody JSONObject data, HttpServletRequest request, ModelMap model) {
    return new ResponseEntity<JSONObject>(data,HttpStatus.OK);
}

首先使用POSTMAN或curl进行测试,如果问题仍然存在,请尝试使用此功能。

var arr = { state: 'Moscow', age: 25 };
var url = "/google/modifiedPolygon";
$.ajax({
  url: url,
  type: 'POST',
  data: JSON.stringify(arr),
  contentType: 'application/json; charset=utf-8',
  dataType: 'json',
  async: false,
  success: function() {
      alert("msg");
  }
});

请启用CORS过滤器。

以下是工作快照。

enter image description here

enter image description here

将此依赖项添加到pom.xml

<dependency>
          <groupId>com.googlecode.json-simple</groupId>
          <artifactId>json-simple</artifactId>
          <version>1.1.1</version>
      </dependency>

请在此处找到java代码更改

https://github.com/supun/Shopping/blob/master/src/main/java/com/shopping/controller/MainController.java