2016-08-28 3 views
2

Ich möchte 3 Werte aus der JSON-Antwort (Name, Breite und Länge) behalten und sie an die Kartenaktivität zur Markierung in den Gmaps übergeben. Aber List Pair (String, String) kann nur 2 String-Argumente nehmen. Wie, um ein Listenpaar mit 3 Argumenten zu haben.Pair-Objekt mit 3 Werten von JSONArray

/// Edited Code nach der ersten Antwort bekommen

InputStream in = conn.getInputStream(); 
     Log.v("Tag","Success"); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
     StringBuilder result = new StringBuilder(); 
     String line; 
     while((line = reader.readLine()) != null) { 
      result.append(line); 
     } 

if(result != null){ 
      List<Pair<String, String>> allNames = new ArrayList<>(); 
      try 

      { 
       JSONArray jsonArray = new JSONArray(result.toString()); 
       for (int i=0; i<result.toString().length(); i++) { 
        JSONObject jobj = jsonArray.getJSONObject(i); 
        String name = jobj.getString("NAME"); 
        String latitude = jobj.getString("LATITUDE"); 
        String Longitude = jobj.getString("LONGITUDE"); 
        allNames.add(Pair.create(name, latitude)); 
       } 

      } catch (JSONException e) { 
       Log.e("JSON Parser", "Error parsing data " + e.toString()); 
      } 
} 

Hier result.toString() enthält meine Ausgabe. Zum Beispiel

[{"MANDT":"200","NAME":"SOU1","LATITUDE":"37.2968812","LONGITUDE":"-81.2344122","CHANGE_TIME":"163724","CHANGE_DATE":"20160826"},{"MANDT":"200","NAME":"ss1","LATITUDE":"29.233232","LONGITUDE":"-81.23","CHANGE_TIME":"174709","CHANGE_DATE":"20160828"}] 

Antwort

3

Ist das, was Sie wollen:

List<Pair<String, String>> filedList = new ArrayList<>(); 
JSONObject jsonObject = new JSONObject(result); 
try { 
    String status = jsonObject.getString("STATUS"); 
    filedList.add(new Pair<String, String>("STATUS", status)); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

Nachdem Sie aktualisieren, ich sehe deine json Daten ein wenig komplexer werden, so dass die Verwendung von JSONObject weniger geeignet sein.

Mein Vorschlag ist es, eine Json-Bibliothek für Ihren Zweck verwenden, GSON ist eine gute Wahl.

+0

Danke für die richtige Richtung. Jetzt möchte ich 3 Werte als ein Paar und behalten Sie es als ein Array. Irgendwelche Ideen? –