2014-10-20 67 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。