Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将JSON HTTP POST请求转换为Java对象时出错_Javascript_Jquery_Json_Jackson_Httprequest - Fatal编程技术网

Javascript 将JSON HTTP POST请求转换为Java对象时出错

Javascript 将JSON HTTP POST请求转换为Java对象时出错,javascript,jquery,json,jackson,httprequest,Javascript,Jquery,Json,Jackson,Httprequest,我想将HTTP POST请求体(JSON格式)转换为Java对象 我在服务器端使用以下Java代码: ObjectMapper mapper = new ObjectMapper(); clip = mapper.readValue(request.body(), Clip.class); 而JavaScript(jQuery)客户端代码是: $.post("/insertClip", { "item": item.value, "value":value.value, "dimension"

我想将HTTP POST请求体(JSON格式)转换为Java对象

我在服务器端使用以下Java代码:

ObjectMapper mapper = new ObjectMapper();
clip = mapper.readValue(request.body(), Clip.class);
而JavaScript(jQuery)客户端代码是:

$.post("/insertClip", { "item": item.value, "value":value.value, "dimension":dimension.value });
运行应用程序时,出现以下错误:

org.codehaus.jackson.JsonParseException: Unexpected character ('i' (code 105)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: clips.json; line: 1, column: 2]
    at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1433)
    at org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:521)
    at org.codehaus.jackson.impl.JsonParserMinimalBase._reportUnexpectedChar(JsonParserMinimalBase.java:442)
    at org.codehaus.jackson.impl.Utf8StreamParser._handleUnexpectedValue(Utf8StreamParser.java:2090)
    at org.codehaus.jackson.impl.Utf8StreamParser._nextTokenNotInObject(Utf8StreamParser.java:606)
    at org.codehaus.jackson.impl.Utf8StreamParser.nextToken(Utf8StreamParser.java:492)
    at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2770)
    at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2718)
    at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1817)
    at elements.DefinitedRoute$2.handle(DefinitedRoute.java:63)
    at spark.webserver.MatcherFilter.doFilter(MatcherFilter.java:133)
    at spark.webserver.JettyHandler.doHandle(JettyHandler.java:47)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:188)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:342)
    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:596)
    at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1068)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:807)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220)
    at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426)
    at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:241)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:528)
    at java.lang.Thread.run(Thread.java:724)

为什么我不能将此POST请求转换为Java对象?

我已经解决了在jQuery代码中添加JSON.stringify()方法的问题:

 $.post("http://localHost:4567/insertClip", 
JSON.stringify({ "item": item.value , "value":value.value, "dimension":dimension.value }));

谢谢。

你能发布
request.body()的内容吗?看起来JSON在某个地方的格式不正确,
request.body()
的内容应该是:
{“item”:item.value,“value”:value.value,“dimension”:dimension.value}
应该是,但是您需要从服务器打印出来并仔细检查,因为它看起来无法解析JSON。谢谢,我已经解决了在jQuery代码中添加JSON.stringify()方法的问题。