JSON数组与布尔属性
问题描述:
我正在为我的CS高级项目一个非常基本的web应用程序的前端。它从用户处获取信息并使用JSON将其提交给数据库。我们的赞助商正在为我的团队留下很多设计,所以我正在设计提交时JSON的外观。在我的JSON中,我有一组具有几个不同属性的人,其中一个是布尔值。我的问题是:我是否需要为每个人列出这个值是真是假?或者我可以只指出哪些人是真的?我不确定后端人员最有效和最有帮助。以下是我的JSON设计示例:JSON数组与布尔属性
{
"travelers": [
{
"firstName": "FirstName",
"lastName": "LastName",
"phoneNumber": "PhoneNumber",
"tripLeader": true
},
{
"firstName": "FirstName",
"lastName": "LastName",
"phoneNumber": "PhoneNumber"
}
]
}
谢谢!
答
我认为这取决于您的问题是关于这个JSON的消费什么。是的,你可以指出谁是真实的,并让消费者假定如果财产不存在,应该假定它是错误的。
的问题,但是,是它成为额外的工作,你的消费者,如果你的消费者使用一些专门的JSON->对象序列化程序可能会导致错误。
让我给你两种情况:
1)你提供的财产,不论真或假的价值。您的消费者只需要检查房产价值,并且可以放心,物业将永远在那里检查。
if (obj.travelers.tripLeader === true) { /*do stuff...*/ }
2)只有当值为true时才提供属性。你的消费者现在需要检查两件事情,财产是否存在,如果是,那么价值是多少。
if (obj.travelers.tripLeader && obj.travelers.tripLeader === true) { /*do stuff...*/ }
希望有帮助。
答
您可以只指定领袖属性
只需使用下面的方法对的JSONObject(其中tripLeader属性为true):
public boolean optBoolean(java.lang.String key, boolean defaultValue)
像这样:
boolean isTripLeader = myJSonObject.optBoolean("tripLeader", false);
每当有没有指定tripLeader属性,当且仅当真正有一个tripLeader属性,它是真,这将返回false。