2016-04-23 8 views
1

Ich versuche, Json-Ergebnis ohne Array-Namen zu analysieren. Ich habe verschiedene Methoden ausprobiert, aber nichts davon funktioniert, das ist mein Code. Also bitte jemand sagen mir, wie man json Ergebnis ohne Array-Namen zu analysierenwie JSON-Ergebnis ohne Array-Namen in Android zu analysieren

danke im Voraus.

Meine JSON

[{"id":"710","name":"app","address":"k","gender":"h"}] 

Ich versuche, dieses JSON Sie anfordern

{"employees":[{"id":"710","name":"app","address":"k","gender":"h"}]} 

Ich erwarte, dass es wie dieses

private class CheckList extends AsyncTask<String, String, JSONObject> { 

    private ProgressDialog mProgressDialog; 

    @Override 
    protected void onPreExecute() { 

     mProgressDialog = new ProgressDialog(Main2Activity.this); 
     // Set progressdialog title 
     mProgressDialog.setTitle("Please Wait"); 
     // Set progressdialog message 
     mProgressDialog.setMessage("Loading..."); 
     mProgressDialog.setIndeterminate(false); 
     // Show progressdialog 
     mProgressDialog.show(); 

     super.onPreExecute(); 

     Main2Activity.this.runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 


      } 
     }); 


    } 

    @Override 
    protected JSONObject doInBackground(String... args) { 
     final JParserAdv jParser = new JParserAdv(); 
     JSONObject json = jParser.makeHttpRequest("http://afkdemo.glabsapps.com/insertwebservice.asmx/getData?id=710", "GET", null); 
     return json; 

    } 

    @Override 
    protected void onPostExecute(JSONObject json) { 
     ArrayList<ITEM> data=new ArrayList<ITEM>(); 
     try { 
      //need to insert array name here but json result I'm using is without array name. 
      JSONArray arr = json.getJSONArray("arrayname"); 
      for(int i=0;i<arr.length();i++) { 
       ITEM d = new ITEM(); 
       d.item_rank = ((JSONObject) arr.get(i)).get("id").toString(); 
       d.item_name = ((JSONObject) arr.get(i)).get("name").toString(); 
       d.item_population = ((JSONObject) arr.get(i)).get("address").toString(); 
       data.add(d); 
      } 
      My_adapter adapter = new My_adapter(Main2Activity.this, data); 
      listView.setAdapter(adapter); 
      mProgressDialog.dismiss(); 
     }catch (Exception ex){ex.printStackTrace();} 

    } 

} 
+0

Können Sie eine Probe JSON erstellen, die Sie zu analysieren versuchen. Es wird einfacher für uns sein, dann zu antworten. Danke. –

+0

[{"id": "710", "name": "app", "adresse": "k", "geschlecht": "h"}] Ich versuche dieses JSON zu analysieren {"employees" : [{"id": "710", "name": "app", "adresse": "k", "geschlecht": "h"}]} ich erwarte es so –

Antwort

0

Es sieht aus wie der Endpunkt zu analysieren gibt eine JSON-Struktur zurück, die wie folgt aussieht:

[ 
    { 
    id: "710", 
    name: "app", 
    address: "k", 
    gender: "h" 
    } 
] 

Da Ihre Wurzel keine Kennung haben, versuchen Sie in Ihrem doInBackground() Methode ein Array als die Wurzel zurück.

private class CheckList extends AsyncTask<String, String, JSONArray> { 

    ... 

    @Override 
    protected JSONArray doInBackground(String... args) { 
     final JParserAdv jParser = new JParserAdv(); 
     JSONArray json = jParser.makeHttpRequest("http://afkdemo.glabsapps.com/insertwebservice.asmx/getData?id=710", "GET", null); 
     return json; 
    } 

    @Override 
    protected void onPostExecute(JSONArray json) { 
     ... 
    } 
} 

Ich bin mir nicht sicher, was die JParseAdv API aussieht, aber hoffentlich gibt es eine Möglichkeit, es zu bekommen ein Array als die Wurzel Ihrer JSON Struktur zurückzukehren.

+0

es gibt keine methode wie json .getAsJsonArray in meinem Code –

+0

Hoppla. Ich dachte, du benutzt die GSON-Bibliothek. Ich werde meine Antwort aktualisieren. – Ryan

+0

Gibt es eine andere Möglichkeit, ohne Kennung zu analysieren –

0

Zuerst die Mitarbeiter in ein Array.

Dann erhalten Sie das Objekt bei Index = 0. Das sollte den Trick machen!

Z. B:

JSONArray employees = json.optJSONArray("employees"); 
JSONObject anEmployee = employees.optJSONObject(0); 
+0

Nein, es funktioniert nicht :( –