ajax请求返回的数据不对的问题

不给你听 发布于 2016/09/30 15:38
阅读 416
收藏 0
ajax访问后台时,后台查看到返回的integer类型的数据都是空。但是到了ajax里面,一看全都变成了0。这是为什么呢?怎么样让它不要变成0

以下是问题补充:

@不给你听:后台是springmvc不需要序列工具。直接返回的是java对象。在后台查看这个对象的时候发现Integer类型的都为null。但是ajax得到这个数据时。全都变成0了 (2016/09/30 17:37)
加载中
0
螃蟹大叔
螃蟹大叔
Integer不要用int,你是用什么序列化的json,看一下他是不是会把int类型为null的自动补0
螃蟹大叔
螃蟹大叔
回复 @不给你听 : 看一下你的json序列化工具是不是把null补0了,比如像fastjson就直接把null属性都干掉了
不给你听
不给你听
就是Integer。
0
LoveOne
LoveOne

你后台返回的应该是将一个对象转化为json的,你的Integer书对象的成员变量吧?Integer类型的成员变量默认值就是0

你是想没有数据的时候变为null?前台统一判断null吗?

不给你听
不给你听
在后台用debug查看的时候,成员变量就是null,但是返回到前台。在ajax里面查看的时候。Integr类型为null值的成员变量都变成0了。
0
螃蟹大叔
螃蟹大叔

引用来自“刘万杰”的评论

Integer不要用int,你是用什么序列化的json,看一下他是不是会把int类型为null的自动补0
package com.yunzhijia.sdk.model;

import java.io.Serializable;

public class User implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 6823685606481396051L;
	private String openId;
	private Integer uid;
	public String getOpenId() {
		return openId;
	}
	public void setOpenId(String openId) {
		this.openId = openId;
	}
	public Integer getUid() {
		return uid;
	}
	public void setUid(Integer uid) {
		this.uid = uid;
	}
}



public class Demo {

	public static void main(String[] args) throws IOException, YunZhiJiaException {
		User user = new User();
		user.setOpenId("c4b79d4e4e8cd882f58d37cac857f77e");
		System.err.println(JSONObject.toJSONString(user, SerializerFeature.WriteMapNullValue));
	}

}

输出结果为:{"openId":"c4b79d4e4e8cd882f58d37cac857f77e","uid":null}

public static void main(String[] args)  {
		User user = new User();
		user.setOpenId("c4b79d4e4e8cd882f58d37cac857f77e");
		System.err.println(JSONObject.toJSONString(user));
	}

输出结果为:{"openId":"c4b79d4e4e8cd882f58d37cac857f77e"}

 public static void main(String[] args)  {
 User user = new User();
 user.setOpenId("c4b79d4e4e8cd882f58d37cac857f77e");
 System.err.println(JSONObject.toJSONString(user,SerializerFeature.WriteNullNumberAsZero,SerializerFeature.WriteMapNullValue));
 }

输出结果为:{"openId":"c4b79d4e4e8cd882f58d37cac857f77e","uid":0}






0
p
polaris_he
跟你的序列化工具有关,看下配置吧
0
c
cikelee
int属于基本类型,默认值是0
返回顶部
顶部