前端ajax请求得到的data,为什么不包括null的属性?

图片描述

这个controller里面确实引入了fastjson,但是在这个mapping里面并没有关于json的操作呀?

阅读 3.3k
5 个回答

前端请求的数据格式是由后端人员设定的,你这个例子中没有approvalSheet属性,可能是后台进行了处理

另外,属性的缺失与属性为null可以一样使用的吧

这跟你后端使用的转json的工具有关系吧,你用的fastjson?gson?jackson?按照你用的去搜索,如何把值为null的属性也写入json

更新:

因为 Spring 会帮你做这个序列化,你要么用 @代码宇宙 的方法手动创建 json 串,要么在那些希望保留 null属性字段加上下面这个注解:

@JSONField(serialzeFeatures=SerializerFeature.WriteMapNullValue)

原答案:

这取决于你所使用的 JSON 序列化 框架。

一般来说,这类框架会有个注解来打开 保留所有字段即使值为空 的开关,你找找你所用的框架的文档吧。

你有一项叫remarks=""就可以当成是空

被JSON解析器给过滤掉了,如果你用的是fastjson的话,可以这样做:

String str = JSONObject.toJSONString(jsonMap,
        SerializerFeature.WriteMapNullValue);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题