我正在尝试将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;}
答案 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 []数组的参数,然后检索第一个元素或将单个对象发送到端点。