2016-03-29 11 views
0

Ich versuche, meine JsonArray in StringArray zu konvertieren, aber ich konnte nicht nur Werte aus dem JSON-Array erhalten. Ich verwende den Code unten, aber in dem resultsFollowedUsersVar.getJSONObject(i); Teil erhalte ich den FehlerKann von einem JsonArray in Android keinen Wert erhalten?

Unhandled exception, org.JSON.jsonException 

Wie kann ich dieses Problem beheben?

resultsFollowedUsers = new ArrayList<String>(); 
resultsFollowedAndPendingUsers = new ArrayList<String>(); 

resultsFollowedUsers.removeAll(resultsFollowedUsers); 
resultsFollowedAndPendingUsers.removeAll(resultsFollowedAndPendingUsers); 

ParseQuery<ParseObject> followedQuery = ParseQuery.getQuery("followCount"); 
followedQuery.whereEqualTo("userid", ParseUser.getCurrentUser().getObjectId()); 

followedQuery.findInBackground(new FindCallback<ParseObject>() { 
    @Override 
    public void done(List<ParseObject> objects, ParseException e) { 

     if (e == null) { 

      for (ParseObject object : objects) { 

       JSONArray resultsFollowedUsersVar = object.getJSONArray("followedArray"); 
       JSONObject json_obj = null; 

       for (int i = 0; i < resultsFollowedUsersVar.length(); i++){ 

        try { 
         System.out.println("Check if program enters here"); 
         System.out.println(resultsFollowedUsersVar.getJSONObject(i)); 
         System.out.println(json_obj.toString()); 
         json_obj = resultsFollowedUsersVar.getJSONObject(i); 
         resultsFollowedUsers.add(json_obj.toString()); 
        } 
        catch(JSONException ex) { 
         ex.printStackTrace(); 
        } 
       } 

       System.out.println(resultsFollowedUsersVar.toString()); 
       System.out.println(resultsFollowedUsers); 

       JSONArray resultsFollowedAndPendingUsersVar = object.getJSONArray("followPendingArray"); 
       JSONObject json_obj2 = null; 

       for(int i = 0; i < resultsFollowedAndPendingUsersVar.length(); i++){ 

        try{ 
         System.out.println("Check if program enters here 2"); 
         json_obj2 = resultsFollowedAndPendingUsersVar.getJSONObject(i); 
         resultsFollowedAndPendingUsers.add(json_obj2.toString()); 
        }catch(JSONException ex){ 
         ex.printStackTrace(); 
        } 
       } 

      } 

     } 

     reloadData(); 
    } 
}); 

The:

System.out.println(resultsFollowedUsersVar.toString()) 

Gibt Ergebnis in log:

["WE27P50RyN","eG0KdMIKJd","rsnwFrkc3r","IqKNzdkVw7"] 

The:

System.out.println(resultsFollowedUsersVar.getJSONObject(i)) 

Gibt Ergebnis in log:

org.json.JSONException: Value IqKNzdkVw7 at 3 of type java.lang.String cannot be converted to JSONObject 

Edit: Ich habe endlich die Lösung wurde ich das Array von Parse in einer falschen Methode abrufen, ich schließlich, wie unten gemacht:

    resultsFollowedUsers = new ArrayList<String>(); 
        resultsFollowedAndPendingUsers = new ArrayList<String>(); 

        resultsFollowedUsers.removeAll(resultsFollowedUsers); 
        resultsFollowedAndPendingUsers.removeAll(resultsFollowedAndPendingUsers); 

        ParseQuery<ParseObject> followedQuery = ParseQuery.getQuery("followCount"); 
        followedQuery.whereEqualTo("userid", ParseUser.getCurrentUser().getObjectId()); 

        followedQuery.findInBackground(new FindCallback<ParseObject>() { 
         @Override 
         public void done(List<ParseObject> objects, ParseException e) { 

          if (e == null) { 

           for (ParseObject object : objects) { 

            resultsFollowedUsers = (ArrayList<String>) object.get("followedArray"); 
            resultsFollowedAndPendingUsers = (ArrayList<String>) object.get("followPendingArray"); 

            System.out.println(resultsFollowedUsers); 
            System.out.println(resultsImageFiles); 

           } 

          } 

          reloadData(); 
         } 
        }); 
+2

posten Sie Ihre JSON und Stacktrace sowie – SMR

Antwort

3

tun

try{ 
    JSONObject json_obj = resultsFollowedUsersVar.getJSONObject(i); 
    resultsFollowedUsers.add(json_obj.toString());    
}catch(JSONException ex){ 
    ex.printStackTrace(); 
} 

EDIT

JSONArray resultsFollowedUsersVar = object.getJSONArray("followedArray"); 
JSONObject json_obj = null; 
for(int i = 0; i < resultsFollowedUsersVar.length(); i++){ 

System.out.println(i); 

    json_obj = resultsFollowedUsersVar.getJSONObject(i); 
    resultsFollowedUsers.add(json_obj.toString());      
    } 

    System.out.println(resultsFollowedUsersVar.toString()); 
    System.out.println(resultsFollowedUsers.toString()); 
+0

Hallo ankit, ich habe es, aber die "resultsFollowedUsers" kommt in println leer, während die resultsFollowedUsersVar nicht ist. – saner

+0

Fehler "Unhandled Ausnahme, org.JSON.jsonException" erneut erhalten. Ich habe meinen Code bearbeitet und mehr davon hinzugefügt. Vielleicht ist da etwas im anderen Teil. – saner

+0

setzen Sie JSONArray resultsFollowedAndPendingUsersVar = object.getJSONArray ("followPendingArray"); auch innerhalb versuchen Block und Ihr Import sollte importieren org.json.JSONException; Machen Sie einen Punkt, wann immer Sie versuchen, auf etwas von json zuzugreifen, setzen Sie es in einen try catch Block –

0

Versuchen Sie die folgenden:

JSONArray resultsFollowedUsersVar = new JSONArray("followedArray"); 
    for(int i = 0; i < resultsFollowedUsersVar.length(); i++){ 

System.out.println(i); 

try { 
    JSONObject json_obj = resultsFollowedUsersVar.getJSONObject(i); 
    resultsFollowedUsers.add(json_obj.toString()); } 
catch (JSONException e){ 
    e.printStackTrace(); } 

} 

Ich hoffe, es hilft.

1
JSONArray resultsFollowedUsersVar = object.getJSONArray("followedArray"); 
int length = resultsFollowedUsersVar .length(); 
for(int i = 0; i < length; i++){ 

    JSONObject json_obj = resultsFollowedUsersVar.getJSONObject(i); 
    resultsFollowedUsers.add(json_obj.getString("bla-bla").toString());      
    } 
0
try { 
JSONArray resultsFollowedUsersVar = object.getJSONArray("followedArray"); 
for(int i = 0; i < resultsFollowedUsersVar.length(); i++){ 
    System.out.println(i); 
    JSONObject json_obj = resultsFollowedUsersVar.getJSONObject(i); 
    resultsFollowedUsers.add(json_obj.toString()); 

    } 
} 
    catch (JSONException e){ 
     e.printStackTrace(); 
} 
    System.out.println(resultsFollowedUsersVar.toString()); 
    System.out.println(resultsFollowedUsers.toString()); 
Verwandte Themen