JSON映射异常

时间:2016-01-05 11:34:57

标签: java angularjs json resteasy

我正在尝试将json数据发送到我的JAVA类但收到错误

"执行POST失败IntakeFormSections / PostData:org.jboss.resteasy.spi.ReaderException:org.codehaus.jackson.map.JsonMappingException:无法从START_ARRAY令牌中反序列化org.json.JSONObject的实例&#34 ;

控制器:

var datanew =  angular.toJson($scope.data);
 $http({

url :"http://localhost:8080/......IntakeFormSections/PostData",

      method: 'POST',
      data : datanew,
      headers: {'Content-Type': 'application/Json'},

      })};

JAVA代码:

@POST
@Path("/PostData")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)

public String UpdateSiteVisitInfo(JSONObject data) throws JSONException {
System.out.println("++++++++++");
System.out.println(data);
return null;}

3 个答案:

答案 0 :(得分:0)

JSON格式错误。

应该是这样的。

[{ "Id": 1, "description": "Submitter Contact Information", "type": "hidden", "required": "false", "subquestions1": [{ "Id": "a", "description": "ID", "type": "text", "name": "id", "patternType": "alphanumeric", "required":"false" }, { "Id": "b", "description": "Name", "type": "text", "name": "user", "patternType": "text", "required":"false", "length":100 }]}]

答案 1 :(得分:0)

您正在将JSONObjects列表作为datanew传递,但在控制器中它将映射到单个JSONObject,请更改控制器参数类型以接受JSONObjects列表。

答案 2 :(得分:0)

正如所指出的,您正在发送一个包含一个JSONObject元素的数组。这意味着您要么应该有一个JSONObject []数组的参数,然后检索第一个元素或将单个对象发送到端点。