2015-10-22 46 views
0

我的JSON數據如下所示。使用Simple Json Library提取JSON數組

{"Users":[ 
    {"Username":"Admin1", "Password":"123"}, 
    {"Username":"Admin2", "Password":"456"}, 
    {"Username":"Admin3", "Password":"789"} 
]} 

我想提取出用戶名和密碼的所有列表。

JSONParser parser=new JSONParser(); 
Object obj = parser.parse(new FileReader("./Database/Users.json")); 
JSONObject jsonObject = (JSONObject) obj; 
JSONArray userArray = (JSONArray) jsonObject.get("Users"); 

然後我如何迭代這個JSONArray來實現我想要的?

回答

2

對不起迭代,如果我還不清楚。我使用的是org.json.simple,而不是org.json。 JSONArray沒有int length()方法。

我所做的是

Iterator<JSONObject> iterator = userArray.iterator(); 
     while (iterator.hasNext()) { 
      JSONObject factObj = (JSONObject) iterator.next(); 
      String userName = (String) factObj.get("Username"); 
      String passWord = (String) factObj.get("Password"); 
     } 
+0

這是JDK 7提供了標準的JSON API我會做 – AbtPst

+0

注的方式;) –

0

閱讀的javadoc;)

如果您正在使用org.json.JSONArray,您可以使用循環來int length()知道數組的長度和Object get(index)JSONObject getJSONObject(index)得到陣列的項目。

0

您可以與循環

for (int i = 0; i < userArray.length(); ++i) { 
    JSONObject user = recs.getJSONObject(i); 
    ... 
} 
0

你也許可以這樣做以下

for(int i = 0; i < userArray.length; i++) { 
    JSONObject user = userArray.getJSONObject(i); 
    String username = user.getString("Username"); 
    String password = user.getString("Password"); 
    //etc 
}