最近在做一个项目时,遇到了一个奇怪的问题:使用Ajax将Json数据传到后台,但是后台的实体类接收不到数据。经过一番排查,最终解决了这个问题。
$.ajax({ type: "POST",url: "test.do",dataType: "json",data: {username:"test",password:"123456"},success: function(result){ //处理返回结果 },error:function(){ //出错处理 } });
以上是我们使用Ajax向后台发送Json的代码,其中dataType指定的是返回结果的数据格式是json类型,data参数是我们要传递的Json数据。
但是,后台却无法正常接收到这个Json数据。经过一番调试,发现是后台实体类属性的命名和Json数据的key不一致导致的。具体来说,如果我们的Json数据是这样的:
{ "username":"test","password":"123456" }
public class User{ private String userName; private String password; //getters and setters }
显然这两者之间的命名是不一致的,所以无法正常接收Json数据。
为了解决这个问题,我们只需要在Json数据里将key的名称改成和后台实体类属性一致即可:
$.ajax({ type: "POST",data: {userName:"test",error:function(){ //出错处理 } });
这样,后台就能够正常接收到Json数据了。
总结起来,我们在使用Ajax将Json数据传到后台时,一定要注意Json数据的key名称和后台实体类属性的名称一致,否则后台将无法正常接收数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。