2012-12-31 35 views
0

我有一個JSON陣列:JSON數組在Java中

** 
** 
{ 
     "Required" : true, 
     "Validation" : { 
     "MaxChars" : "40" 
     "MinChars" : "10" 
     } 
    } 
** 
** 

現在的代碼:

JSONObject formField = formListAdapter.formArray.getJSONObject(i); 

if(formField.has("Required") && formField.getBoolean("Required") == true){ 

} 

:在上述代碼中,我可以檢查是否在JSON有一個字段名稱「必需」,如果這是真的。但是如何檢查Validation是否有一個屬性?以及我如何檢查名稱和它的價值? 也就是說我如何檢查MaxChars或MinChars的數量?

回答

2

您可以使用JSONObject#getJSONObject獲取與該鍵相對應的JSONObject,然後可以執行相同的操作以從鍵中獲取值。

JSONObject validationObject = formField.getJSONObject("Validation"); 

,或者你可以使用更好的方法,使用jackson

0

您必須檢查「Validiation」對象的值。 我從來沒有使用json.org,但我相信你可以從它創建一個新的JSONObject並讀取像你使用數組中的對象一樣的值。

1
JSONObject validationObject = jsonObject.getJSONObject("Validation"); 
if (validationObject.has("MaxChars")) { 
    int maxChars = validationObject.getInt("MaxChars"); 
    ... 
} 

// same for MinChars 

要得到validationObject屬性名稱,你可以使用:

String[] names = JSONObject.getNames(validationObject);