2017-05-23 33 views
-2

這種類型的JSON數組輸出的我打印此JSON數組中的我的Android如何打印在安卓

它包括一個陣列

什麼是Android代碼的一個數組裏面?

這是我的PHP輸出

[{"result":"true","user":[{"id":"26","name":"Manali Ashar","email":"123","password":"[email protected]","address":"chital road","city":"amreli","contact":"9402312345","qualification":"M.D","experience":"2","department":"Pediatric","age":"22","from_time":"05:15:00","to_time":"07:15:00","status":"1","current_date_time":"2016-04-02 07:18:26"}]}] 
+1

顯示你的代碼。 – xbadal

+3

[如何在Android中解析JSON]可能的重複(https://stackoverflow.com/questions/9605913/how-to-parse-json-in-android) –

回答

1
String data="[{"result":"true","user":[{"id":"26","name":"Manali Ashar","email":"123","password":"manali[email protected]","address":"chital road","city":"amreli","contact":"9402312345","qualification":"M.D","experience":"2","department":"Pediatric","age":"22","from_time":"05:15:00","to_time":"07:15:00","status":"1","current_date_time":"2016-04-02 07:18:26"}]}]"; 
     try 
     { 
      JSONArray array=new JSONArray(data); 
      JSONObject jsonObject=array.getJSONObject(0); 
      String returnword=jsonObject.getString("return"); 
      JSONArray users=jsonObject.getJSONArray("user"); 
      for(int i=0;i<users.length();i++) 
      { 
       JSONObject object=users.getJSONObject(i); 
       String id=object.getString("id"); 
       String name=object.getString("name"); 
       String email=object.getString("email"); 
       String password=object.getString("password"); 
       String address=object.getString("address"); 
       String city=object.getString("city"); 
       String contact=object.getString("contact"); 
       String qualification=object.getString("qualification"); 
       String experience=object.getString("experience"); 
       String department=object.getString("department"); 
       String age=object.getString("age"); 
       String from_time=object.getString("from_time"); 
       String to_time=object.getString("to_time"); 
       String status=object.getString("status"); 
       String current_date_time=object.getString("current_date_time"); 

      } 
     } 
     catch (JSONException e) 
     { 
      e.printStackTrace(); 
     } 

這是解析任何JSON的簡單方法。

1

嘗試刪除所有數組括號[ ]因爲你需要JSON對象不僅沒有數組JSON對象。然後數據會看起來像

{"result":"true","user":{"id":"26","name":"Manali Ashar","email":"123","password":"[email protected]","address":"chital road","city":"amreli","contact":"9402312345","qualification":"M.D","experience":"2","department":"Pediatric","age":"22","from_time":"05:15:00","to_time":"07:15:00","status":"1","current_date_time":"2016-04-02 07:18:26"}} 

現在的Android代碼:

try { 
    JSONObject json = new JSONObject(result); 
    JSONObject user= json.getJSONObject("user"); 
    String name= user.getString("name");  
} catch (JSONException e) { 
    e.printStackTrace(); 
} 
+1

爲什麼要刪除括號? –

+0

因爲這會在android –

+0

中創建更多的難度來讀取數據,但是爲什麼不使用JSONARRAY類來傳遞實際的JSON字符串,因爲它包含[]括號。無需刪除它。 –

1
try { 
     //send response 
     JSONArray jsonArray = JSONArray(response); 
     for (int i = 0; i < jsonArray.length(); i++) { 
      JSONObject jsonObject = jsonArray.getJSONObject(i); 
      if(!jsonObject.isNull("result")){ 
       String result = jsonObject.getString("result"); 
       if(result.equals("true")){ 
        JSONArray userArray = jsonObject.getJSONArray("user"); 
        for(int j=0; j<userArray.length(); j++){ 
         jsonObject = userArray.getJSONObject(j); 
         String id = isJsonValid(jsonObject, "id"); 
         String name = isJsonValid(jsonObject, "name"); 
         String email = isJsonValid(jsonObject, "email"); 
         String password = isJsonValid(jsonObject, "password"); 
         String address = isJsonValid(jsonObject, "address"); 
         String city = isJsonValid(jsonObject, "city"); 
         String contact = isJsonValid(jsonObject, "contact"); 
         String qualification = isJsonValid(jsonObject, "qualification"); 
         String experience = isJsonValid(jsonObject, "experience"); 
         String department = isJsonValid(jsonObject, "department"); 
         String to_time = isJsonValid(jsonObject, "to_time"); 
         String age = isJsonValid(jsonObject, "age"); 
         String from_time = isJsonValid(jsonObject, "from_time"); 
         String status = isJsonValid(jsonObject, "status"); 
         String current_date_time = isJsonValid(jsonObject, "current_date_time"); 
        } 
       }else{ 
        //do something 
       } 
      } 
     } 
    }catch (JSONException je){ 
     je.printStackTrace(); 
    } 


public String isJsonValid(JSONObject jsonObject, String key) throws JSONException { 
    //check key is present or not 
    if(!jsonObject.isNull(key)){ 
     return jsonObject.getString(key); 
    }else{ 
     return "N/A"; 
    } 
} 
+0

謝謝你的幫助 –

0

您可以使用Gson

第1步:創建JSON數據

public class Data { 
    public String result; 
    public List<User> user; 
} 

public class User { 
    public String status; 
    public String department; 
    public String password; 
    public String contact; 
    public String city; 
    public String id; 
    public String qualification; 
    public String email; 
    public String address; 
    public String from_time; 
    public String name; 
    public String age; 
    public String current_date_time; 
    public String experience; 
    public String to_time; 
} 

步驟2的POJO:使用GSON庫

final Gson gson = new Gson(); 
解析JSON

由於它是一組數據,我們需要得到一個列表這樣從JSON字符串

List<Data> response = gson.fromJson(JSON_DATA, new TypeToken<List<Data>>() {}.getType()); 

第3步:獲取值

Data data = response.get(0); 
User user = data.user.get(0); 

並打印結果同樣

Log.d("JsonExample","Name: " + user.name); 
... 
...