2014-10-20 66 views
-1

我正在为我的CS高级项目一个非常基本的web应用程序的前端。它从用户处获取信息并使用JSON将其提交给数据库。我们的赞助商正在为我的团队留下很多设计,所以我正在设计提交时JSON的外观。在我的JSON中,我有一组具有几个不同属性的人,其中一个是布尔值。我的问题是:我是否需要为每个人列出这个值是真是假?或者我可以只指出哪些人是真的?我不确定后端人员最有效和最有帮助。以下是我的JSON设计示例:JSON数组与布尔属性

{ 
    "travelers": [ 
     { 
      "firstName": "FirstName", 
      "lastName": "LastName", 
      "phoneNumber": "PhoneNumber", 
      "tripLeader": true 
     }, 
     { 
      "firstName": "FirstName", 
      "lastName": "LastName", 
      "phoneNumber": "PhoneNumber" 
     } 
    ] 
} 

谢谢!

回答

0

我认为这取决于您的问题是关于这个JSON的消费什么。是的,你可以指出谁是真实的,并让消费者假定如果财产不存在,应该假定它是错误的。

的问题,但是,是它成为额外的工作,你的消费者,如果你的消费者使用一些专门的JSON->对象序列化程序可能会导致错误。

让我给你两种情况:

1)你提供的财产,不论真或假的价值。您的消费者只需要检查房产价值,并且可以放心,物业将永远在那里检查。

if (obj.travelers.tripLeader === true) { /*do stuff...*/ } 

2)只有当值为true时才提供属性。你的消费者现在需要检查两件事情,财产是否存在,如果是,那么价值是多少。

if (obj.travelers.tripLeader && obj.travelers.tripLeader === true) { /*do stuff...*/ } 

希望有帮助。

0

您可以只指定领袖属性

只需使用下面的方法对的JSONObject(其中tripLeader属性为true):

public boolean optBoolean(java.lang.String key, boolean defaultValue) 

像这样:

boolean isTripLeader = myJSonObject.optBoolean("tripLeader", false); 

每当有没有指定tripLeader属性,当且仅当真正有一个tripLeader属性,它是真,这将返回false。