Rails 「讨论」API 返回的 JSON 中,该如何处理 nil 的字段

linjunzhugg · 2015年09月29日 · 最后由 ywjno 回复于 2015年10月09日 · 2604 次阅读

如下 API 返回的 JSON 数据

{
  "version_code": 123,
  "phone": none
}

phone字段为 nil,使用jbuilder构造数据时,返回便是none

客户端没有进行处理的情况下,这个none有可能会造成客户端的异常。 就算客户端会进行处理,但如果返回的json中有十个字段,有好多个都有可能为none怎么办?客户端难道要一项项进行校验?

有人说了,那你就永远让他不要为 nil 呀,设为默认值为空字符串或 0,但这样有时候并不符合业务的需求,比如phone会有格式的校验,如果让他成为空字符串,肯定是验证不通过。

各位你们是如何看待的?

服务端和客户端约定好处理方式就行了。

按标准来就是了

空或 Null 属性值应该从 JSON 中去掉,除非它的存在有很强的语义原因。

https://google-styleguide.googlecode.com/svn/trunk/jsoncstyleguide.xml

去掉就行了,客户端处理下

提供个 java 的做法,用 JsonFormat 来指定返回 json 的形式,比如该字段是 null 的时调用 to_json 的话在 json 字符串中是否出现

需要 登录 后方可回复, 如果你还没有账号请 注册新账号