GVKun编程网logo

使用jQuery将POST主体设置为JSON对象

16

本文将分享使用jQuery将POST主体设置为JSON对象的详细内容,此外,我们还将为大家带来关于ios–RestKit0.20JSON对象被序列化为POST主体中的GET样式请求、javascrip

本文将分享使用jQuery将POST主体设置为JSON对象的详细内容,此外,我们还将为大家带来关于ios – RestKit 0.20 JSON对象被序列化为POST主体中的GET样式请求、javascript – 使用jQuery将json对象下载为json文件、javascript – 使用jQuery将JSON对象发布到Spring 3控制器、jquery – 将字符串转换为JSON对象的相关知识,希望对你有所帮助。

本文目录一览:

使用jQuery将POST主体设置为JSON对象

使用jQuery将POST主体设置为JSON对象

我正在尝试在Sinatra应用程序中编写基于JSON的Web API。我想发布一个JSON对象作为发布正文(设置了正确的内容类型),但是我很挣扎。

在可可中,我会做类似的事情

[mutableHTTPRequest setHTTPBody:dataRepresentationOfJSONObject];

然后将内容类型设置为JSON,然后将HTTP正文作为JSON对象发布。我正在尝试使用jQuery。到目前为止,我能做的最好的就是将JSON对象转换为普通key=value&…样式的文章正文,而这
并不是 我所追求的。

我的Javascript:

var data = { "user" : "me!" };$.ajax({    type: "POST",    url: "/api/user/create",    contentType: ''application/json'',    data: data,    success: function(r) {});

关于如何执行此操作的任何指示?我的目标是让我的Sinatra做到如下

post "/api/user/create" do    js = JSON.parse(request.body.read)    # do something with the js object… this works when POSTing from Cocoaend

答案1

小编典典

将processData参数添加到您的Ajax请求中并将其设置为false。此外,您需要对对象进行字符串化以将其转换为JSON。

var data = { "user" : "me!" };$.ajax({    type: "POST",    url: "/api/user/create",    processData: false,    contentType: ''application/json'',    data: JSON.stringify(data),    success: function(r) {    }});

JSON.stringify除非您实现它,否则在旧版本的IE中将无法使用。http://json.org

ios – RestKit 0.20 JSON对象被序列化为POST主体中的GET样式请求

ios – RestKit 0.20 JSON对象被序列化为POST主体中的GET样式请求

我刚刚开始使用RestKit 0.20.0,我在创建格式良好的 JSON请求时遇到了麻烦.

我得到这个(从休息工具包日志):

request.body=title=A%20glorIoUs%20walk%20in%20the%20woods&startDateTime=2013-01-13%2016%3A09%3A33%20%2B0000&endDateTime=2013-01-13%2016%3A09%3A43%20%2B0000&points[][longitude]=-122.0307725&points[][latitude]=37.3310798&points[][longitude]=-122.0307334&points[][latitude]=37.33154242&points[][longitude]=-122.03075743&points[][latitude]=37.33138305&points[][longitude]=-122.03075659&points[][latitude]=37.33131185&points[][longitude]=-122.03057969&points[][latitude]=37.33156519&points[][longitude]=-122.03075535&points[][latitude]=37.33144466&points[][longitude]=-122.03076342&points[][latitude]=37.33123666&points[][longitude]=-122.03074488&points[][latitude]=37.33149482&points[][longitude]=-122.03068145&points[][latitude]=37.33155419&points[][longitude]=-122.03062909&points[][latitude]=37.33156564&points[][longitude]=-122.03076853&points[][latitude]=37.33115792

当我想要这个(带有大括号的普通json对象和points属性的数组)时:

{
    title: "Something",startDateTime: "dateinfo",endDateTime: "moredateinfo",points: [
        {
            latitude: "37.33131313",longitude: "122.4325454"
        },{
            latitude: "37.33131313",longitude: "122.4325454"
        }
    ]
}

我有两个主要对象:DLWalk包含一个DLPoint对象的NSSet(它们是CoreData对象,但目前我忽略了它,只关注创建HTTP请求)

这是我用来创建请求的代码:

// Point mapping
RKObjectMapping *mappingPoint = [RKObjectMapping requestMapping];
[mappingPoint addAttributeMappingsFromArray:@[@"latitude",@"longitude"]];
RKRequestDescriptor *reqDescPoint = [RKRequestDescriptor requestDescriptorWithMapping:mappingPoint objectClass:[DLPoint class] rootKeyPath:nil];

// Walk mapping
RKObjectMapping *mappingWalk = [RKObjectMapping requestMapping];
[mappingWalk addAttributeMappingsFromArray:@[@"endDateTime",@"startDateTime",@"title"]];
RKRequestDescriptor *reqDescWalk = [RKRequestDescriptor requestDescriptorWithMapping:mappingWalk objectClass:[DLWalk class] rootKeyPath:nil];


// Define the relationship mapping
[mappingWalk addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"points" toKeyPath:@"points" withMapping:mappingPoint]];

RKObjectManager *manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://192.168.1.10:8080"]];
                            [manager addRequestDescriptor:reqDescWalk];
                            [manager addRequestDescriptor:reqDescPoint];
                            [manager addResponseDescriptor:responseDescriptor];

// POST to create
[manager postObject:walk path:@"/walk/save" parameters:nil success:nil failure:nil];

所以问题是:为什么我的POST主体中没有看到正常的JSON对象?

解决方法

你得到的是request.body是URL编码的,这是RESTKit的默认行为,通常工作正常.

如果您希望它是JSON编码的,只需在发布查询之前插入此行

manager.requestSerializationMIMEType=RKMIMETypeJSON;

有关这方面的更多信息,请查看RKObjectManager类的api文档:
requestSerializationMIMEType

javascript – 使用jQuery将json对象下载为json文件

javascript – 使用jQuery将json对象下载为json文件

我正在寻找方法下载一个stringfied json对象作为文件..

我确实有一个解决方案,如这个小提琴示例中所示:

FIDDLE

我的工作版看起来像这样

HTML

    From data attribute of span:
    <span id="a-data"></span>
    <span id="obj-data" data-obj2='{"obj-1": "text-1","obj-2": "text-2","obj-3": "text-3"}'></span>

JavaScript的

    var obj = $("#obj-data").data("obj2");
    var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(obj));
    $('<a href="data:' + data + '" download="data.json">Download Me</a>').appendTo("#a-data");

如果我可以使用这个HTML,我更喜欢.你能建议一种接近的方法吗?

From data attribute of self:
<div id="data" data-obj='{"obj-1": "text-1","obj-2": "text-2","obj-3": "text-3"}'>
    Download Me
</div>

解决方法:

尝试将“application / json”替换为“text / json”,在DOM元素a上调用.click(),删除at click handler

$("#data").click(function() {
  $("<a />", {
    "download": "data.json",
    "href" : "data:application/json," + encodeURIComponent(JSON.stringify($(this).data().obj))
  }).appendTo("body")
  .click(function() {
     $(this).remove()
  })[0].click()
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div id="data" data-obj='{"obj-1": "some text","obj-2": "text-2","obj-3": "text-3"}'>
    Download Me
</div>

jsfiddle http://jsfiddle.net/kda2rdLy/

javascript – 使用jQuery将JSON对象发布到Spring 3控制器

javascript – 使用jQuery将JSON对象发布到Spring 3控制器

我试图在 Spring 3中向控件发送一个 JSON对象.

我收到以下错误:

2010-10-20 17:59:14,391 DEBUG [org.springframework.web.servlet.dispatcherServlet] Could not complete request
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Unrecognized token 'tilI': was expecting 'null','true' or 'false'
 at [Source: org.apache.catalina.connector.CoyoteInputStream@1509a99; line: 1,column: 9]; nested exception is org.codehaus.jackson.JsonParseException: Unrecognized token 'tilI': was expecting 'null',column: 9]
 at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readInternal(MappingJacksonHttpMessageConverter.java:138)
 at org.springframework.http.converter.AbstractHttpMessageConverter.read(AbstractHttpMessageConverter.java:154)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.readWithMessageConverters(HandlerMethodInvoker.java:643)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveRequestBody(HandlerMethodInvoker.java:607)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:346)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:427)
 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:415)
 at org.springframework.web.servlet.dispatcherServlet.dodispatch(dispatcherServlet.java:788)
 at org.springframework.web.servlet.dispatcherServlet.doService(dispatcherServlet.java:717)
 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.Applicationdispatcher.invoke(Applicationdispatcher.java:654)
 at org.apache.catalina.core.Applicationdispatcher.processRequest(Applicationdispatcher.java:445)
 at org.apache.catalina.core.Applicationdispatcher.doForward(Applicationdispatcher.java:379)
 at org.apache.catalina.core.Applicationdispatcher.forward(Applicationdispatcher.java:292)
 at org.tuckey.web.filters.urlrewrite.normalRewrittenUrl.doRewrite(normalRewrittenUrl.java:213)
 at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
 at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
 at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
 at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
 at java.lang.Thread.run(Thread.java:662)
Caused by: org.codehaus.jackson.JsonParseException: Unrecognized token 'tilI': was expecting 'null',column: 9]
 at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1150)
 at org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:324)
 at org.codehaus.jackson.impl.Utf8StreamParser._reportInvalidToken(Utf8StreamParser.java:1220)
 at org.codehaus.jackson.impl.Utf8StreamParser._matchToken(Utf8StreamParser.java:1188)
 at org.codehaus.jackson.impl.Utf8StreamParser.nextToken(Utf8StreamParser.java:184)
 at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2017)
 at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:1974)
 at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1331)
 at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readInternal(MappingJacksonHttpMessageConverter.java:135)
 ... 42 more
2010-10-20 17:59:14,391 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/cfs].[Spring MVC dispatcher Servlet]] Servlet.service() for servlet Spring MVC dispatcher Servlet threw exception
org.codehaus.jackson.JsonParseException: Unrecognized token 'tilI': was expecting 'null',column: 9]
 at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1150)
 at org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:324)
 at org.codehaus.jackson.impl.Utf8StreamParser._reportInvalidToken(Utf8StreamParser.java:1220)
 at org.codehaus.jackson.impl.Utf8StreamParser._matchToken(Utf8StreamParser.java:1188)
 at org.codehaus.jackson.impl.Utf8StreamParser.nextToken(Utf8StreamParser.java:184)
 at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2017)
 at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:1974)
 at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1331)
 at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readInternal(MappingJacksonHttpMessageConverter.java:135)
 at org.springframework.http.converter.AbstractHttpMessageConverter.read(AbstractHttpMessageConverter.java:154)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.readWithMessageConverters(HandlerMethodInvoker.java:643)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveRequestBody(HandlerMethodInvoker.java:607)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:346)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:427)
 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:415)
 at org.springframework.web.servlet.dispatcherServlet.dodispatch(dispatcherServlet.java:788)
 at org.springframework.web.servlet.dispatcherServlet.doService(dispatcherServlet.java:717)
 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.Applicationdispatcher.invoke(Applicationdispatcher.java:654)
 at org.apache.catalina.core.Applicationdispatcher.processRequest(Applicationdispatcher.java:445)
 at org.apache.catalina.core.Applicationdispatcher.doForward(Applicationdispatcher.java:379)
 at org.apache.catalina.core.Applicationdispatcher.forward(Applicationdispatcher.java:292)
 at org.tuckey.web.filters.urlrewrite.normalRewrittenUrl.doRewrite(normalRewrittenUrl.java:213)
 at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
 at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
 at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
 at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
 at java.lang.Thread.run(Thread.java:662)
2010-10-20 17:59:14,393 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/cfs].[default]] Servlet.service() for servlet default threw exception
org.codehaus.jackson.JsonParseException: Unrecognized token 'tilI': was expecting 'null',column: 9]
 at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1150)
 at org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:324)
 at org.codehaus.jackson.impl.Utf8StreamParser._reportInvalidToken(Utf8StreamParser.java:1220)
 at org.codehaus.jackson.impl.Utf8StreamParser._matchToken(Utf8StreamParser.java:1188)
 at org.codehaus.jackson.impl.Utf8StreamParser.nextToken(Utf8StreamParser.java:184)
 at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2017)
 at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:1974)
 at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1331)
 at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readInternal(MappingJacksonHttpMessageConverter.java:135)
 at org.springframework.http.converter.AbstractHttpMessageConverter.read(AbstractHttpMessageConverter.java:154)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.readWithMessageConverters(HandlerMethodInvoker.java:643)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveRequestBody(HandlerMethodInvoker.java:607)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:346)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:427)
 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:415)
 at org.springframework.web.servlet.dispatcherServlet.dodispatch(dispatcherServlet.java:788)
 at org.springframework.web.servlet.dispatcherServlet.doService(dispatcherServlet.java:717)
 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.Applicationdispatcher.invoke(Applicationdispatcher.java:654)
 at org.apache.catalina.core.Applicationdispatcher.processRequest(Applicationdispatcher.java:445)
 at org.apache.catalina.core.Applicationdispatcher.doForward(Applicationdispatcher.java:379)
 at org.apache.catalina.core.Applicationdispatcher.forward(Applicationdispatcher.java:292)
 at org.tuckey.web.filters.urlrewrite.normalRewrittenUrl.doRewrite(normalRewrittenUrl.java:213)
 at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
 at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
 at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
 at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
 at java.lang.Thread.run(Thread.java:662)

我的控制器:

@RequestMapping(value = MappingConstants.RULE_ASSIGNMENT,method = RequestMethod.POST)
 public String saveRuleAssignment(@RequestBody RuleAssignmentCO ruleAssignment) {

  return MappingConstants.REDIRECT + MappingConstants.RULE_ASSIGNMENT;
 }

我的jQuery javascript:

ruleAssignment = {
   titleId: titleId,typeId: typeId,seriesId: seriesId
            }

  jQuery.ajax({
   url: 'ruleAssignment',type: 'POST',dataType: 'json',data: ruleAssignment,contentType: 'application/json',success: function(result) {
         console.log('here');
        }
  });

解决方法

jQuery不会自动将Javascript对象编码成JSON,您需要使用JSON.stringify()手动进行操作:
jQuery.ajax({ 
    url: 'ruleAssignment',data: JSON.stringify(ruleAssignment),success: function(result) { 
         console.log('here'); 
    } 
});

请注意,某些浏览器不支持JSON.stringify()作为内置方法,在这种情况下,您需要json2.js才能进行可移植性.

jquery – 将字符串转换为JSON对象

jquery – 将字符串转换为JSON对象

如何将字符串转换为对象?我面临这个问题,因为我试图读取JSON字符串中的元素使用“每个”。

我的字符串如下。

jsonObj = "{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}"

我使用eval和我已经使用

var obj = $.parseJSON(jsonObj);

我也用过

var obj= eval("(" + jsonObj + ")");

但它总是null

解决方法

将字符串括在单引号中应该可以工作。尝试这个。
var jsonObj = '{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}';
var obj = $.parseJSON(jsonObj);

Demo

我们今天的关于使用jQuery将POST主体设置为JSON对象的分享就到这里,谢谢您的阅读,如果想了解更多关于ios – RestKit 0.20 JSON对象被序列化为POST主体中的GET样式请求、javascript – 使用jQuery将json对象下载为json文件、javascript – 使用jQuery将JSON对象发布到Spring 3控制器、jquery – 将字符串转换为JSON对象的相关信息,可以在本站进行搜索。

本文标签: