可选值的可选JSON请求格式是什么,可选的值部分,可选的值数组?

时间:2014-01-24 22:47:37

标签: json

我正在开发REST / JSON API。可以通过多种方式在JSON POST / PUT请求中显示可选值。

Q1。如果API客户端不想指定它们,那么在JSON请求中显示可选字段值的最佳方法是什么?

密码是可选的:选项1

{
  "credentials": {
    "username": "john.doe@acme.com",
    "password": null
  }
} 

密码是可选的:选项2

{
  "credentials": {
    "username": "john.doe@acme.com",
  }
} 

密码是可选的:选项3

{
  "credentials": {
    "username": "john.doe@acme.com",
    "password": ""
  }
} 

Q2。如果API客户端不想指定它们,那么在JSON请求中显示可选设置字段值的最佳方法是什么?

凭证是可选的:选项1

{
  "credentials": null,
  "attributes": {
    "name": "John Doe",
    "email": "john.doe@acme.com"
  }
}

凭证是可选的:选项2

{
  "credentials": {},
  "attributes": {
    "name": "John Doe",
    "email": "john.doe@acme.com"
  }
}

凭证是可选的:选项3

{
  "attributes": {
    "name": "John Doe",
    "email": "john.doe@acme.com"
  }
}

凭证是可选的:选项4

{
  "credentials": {
    "username": null,
    "password": null
  },
  "attributes": {
    "name": "John Doe",
    "email": "john.doe@acme.com"
  }
}

我在Java中使用RestEasy作为API服务器,使用RubyonRails网站作为客户端。

2 个答案:

答案 0 :(得分:2)

答案在两种情况下都是一样的:这取决于你,但最常见的方法是完全关闭钥匙。没有什么比“完全没有”更能说“没事”了。

答案 1 :(得分:0)

在分析你的问题后..我猜你的第一个选项(1编辑“”而不是null)

{
  "credentials": {
    "username": "john.doe@acme.com",
    "password": ""
  }
} 

是最好的方法,你可以使用其他但这是最容易阅读和解析...我可以使用值密码“”而不是null ...在代码中你可以验证if(password ==“”)这就是全部...

希望你能解决这个问题......

...问候

相关问题