2017-05-23 129 views
-3

我是JSON解析的新手。如果有人能夠幫助我解析Android中的這種json數組,那將會非常有幫助。 謝謝我應該如何解析這種JSON?

{ 
    "response": 200, 
    "department": [ 
    "Information Technology" 
    ], 
    "subject": [ 
    "ads(th)" 
    ], 
    "professional": [ 
    "cg(th)", 
    "cg(lab)" 
    ], 
    "semester": [ 
    "3A", 
    "5A", 
    "5A" 
    ] 
} 
+0

解析用什麼語言? –

+0

java中的Android –

回答

1

這是烏拉圭回合的反應:

{ 
    "response": 200, 
    "department": [ 
    "Information Technology" 
    ], 
    "subject": [ 
    "ads(th)" 
    ], 
    "professional": [ 
    "cg(th)", 
    "cg(lab)" 
    ], 
    "semester": [ 
    "3A", 
    "5A", 
    "5A" 
    ] 
} 

U可以做到這樣

String responseString="" //this string is ur web service response 
try { 
     //JSON is the JSON code above 

     JSONObject jsonResponse = new JSONObject(responseString); 
     JSONArray department = jsonResponse.getJSONArray("department"); 
     String hey = department.toString(); 

JSONArray subject = jsonResponse.getJSONArray("subject"); 
     String sub = subject.toString(); 

JSONArray professional= jsonResponse.getJSONArray("professional"); 
     String pro = professional.toString(); 
//like this u can parse other JsonArray 

    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

ü要在轉妳比來顯示它在jsonarray得到這些數據後可以這樣做

ArrayList<String> listdata = new ArrayList<String>(); 
if (professional != null) { 
    for (int i=0;i<professional.length();i++){ 
    listdata.add(professional.getString(i)); 
    } 
} 

對於顯示爲微調

Spinner spinner = (Spinner) findViewById(R.id.SpinnerSpcial); 

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, listdata);//Pass list data of Profession 
spinner.setAdapter(adapter); 

注: 您可以通過擴展BaseAdapter或ArrayAdapter的微調使自定義適配器也。

希望這將幫助ü...如果u有任何疑問u能問

+0

yess..but我如何存儲它並將其顯示在微調器中? 如果你能幫助我,這將是一個很大的幫助! –

+0

是的,你可以顯示在微調,但你想顯示專業或學期?檢查下面的代碼顯示項目在微調我不能把整個代碼的評論,所以 –

+0

我使用4微調,每個數組應該在每個微調.. 可以這樣做嗎? –

0
try { //When parsing JSON, you need try catch to handle error if occure 
    JSONObject fullJSON = new JSONObject("{\"response\":200,\"department\":[\"Information Technology\"],\"subject\":[\"ads(th)\"],\"professional\":[\"cg(th)\",\"cg(lab)\"],\"semester\":[\"3A\",\"5A\",\"5A\"]}"); 
    int response = fullJSON.getInteger("response"); 
    JSONArray departement = fullJSON.getJSONArray("department"); 
    Log.i("", departement.getString(0)); 
    JSONArray semester = fullJSON.getJSONArray("semester"); 
    for(int i=0; i<semester.length(); i++) { 
     Log.i("semester", semester.getString(i)); 
    } 
} catch (JSONException e) { 
    //here's the error message you can get from 
    e.printStackTrace(); 
} 
0

我建議你使用Gson Libray

隨着GSON您的映射類將是這樣的:

public class YourClass { 

@SerializedName("response") 
private Integer response; 

@SerializedName("department") 
private List<String> department; 

@SerializedName("subject") 
private List<String> subject; 

@SerializedName("professional") 
private List<String> professional; 

@SerializedName("semester") 
private List<String> semester; 
} 

使用Gson,您可以輕鬆地轉換POJO中的Json(反之亦然)。檢查文檔。

1

試試這個,

try { 
    JSONObject obj_result=new JSONObject(result); 
    String response=obj_result.getString("response"); 

    JSONArray arr_department=obj_result.getJSONArray("department"); 
    for(int i=0;i<arr_department.length();i++) 
    { 
     String department_name=arr_department.getString(i); 
     Log.d("TAG","department_name:"+department_name); 
    } 

    JSONArray arr_subject=obj_result.getJSONArray("subject"); 
    for(int i=0;i<arr_subject.length();i++) 
    { 
     String subject_name=arr_subject.getString(i); 
     Log.d("TAG","subject_name:"+subject_name); 
    } 

    JSONArray arr_professional=obj_result.getJSONArray("professional"); 
    for(int i=0;i<arr_professional.length();i++) 
    { 
     String professional_name=arr_professional.getString(i); 
     Log.d("TAG","professional_name:"+professional_name); 
    } 

    JSONArray arr_semester=obj_result.getJSONArray("semester"); 
    for(int i=0;i<arr_semester.length();i++) 
    { 
     String semester_name=arr_semester.getString(i); 
     Log.d("TAG","semester_name:"+semester_name); 
    } 

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