2012-03-28 5 views
0

Ich entferne mich von serialisierbaren Objekten (muss cachen und Dinge verschieben - jeder scheint zu sagen, dass ich mich von serialisierbaren Objekten fern halte) und schreibe Methoden, um meine komplexen Objekte in JSONObjects zu transformieren.Erstellen von JSONObjects mit Methode Put

Der Punkt: Ich habe angefangen zu spielen mit, wie JSONObjects aus meinen komplexen Objekten erstellen. Ich naiv gerade versucht dies:

JSONObject toReturn = new JSONObject(); 
    Iterator<LocationModel> locIter = locationList.iterator(); 

    while (locIter.hasNext()) 
    { 
     try { 
      toReturn.put("location", locIter.next()); 
     } catch (JSONException e) { 
     } 
    } 

wo LocationModel wie folgt aussieht:

public class LocationModel implements Serializable { 

private String name; 
private double Longitude; 
private double Latitude; 
private String description; 

public LocationModel(
     basic construtor sets variables above 
} 

public String toString() 
{ 
    return (name + " 8888 " + longitude + "/" + latitude + " !! " + description); 
} 

}

nun das Merkwürdige (mir atleast), ist die Tatsache, dass nach dem Iterator in der ersten Stück Code ist abgeschlossen, ich gebe das JSONObject als String aus und ich sehe es so aussieht:

{"location": "LocationName 8888 -1/1 !! einige Beschreibung hier "}

FRAGEN

  1. In der Dokumentation für JSONObject gibt es keine Erwähnung von JSONObject.put (Name, Object) die Objekte aufrufen "toString" -Funktion so wie/warum tut es tun? In Wirklichkeit meine LocationModel Klasse andere Funktionen, die Strings zurückgeben, damit es nicht die einzige Funktion ist, die einen String zurückgibt.
+0

Nun, nachdem ich gerade die Dokumente eines Java-Objekts angeschaut habe, sehe ich, dass sie die Methode toString() haben, die automatisch aufgerufen wird, wenn put so verwendet wird? Wird die Frage löschen, wenn andere denken, ich sollte. – IamAlexAlright

Antwort

1

ich würde dringend empfehlen für einen Start zu verwenden Gson, und wenn Sie brauchen die zusätzliche Geschwindigkeit von einigen der anderen json-parser konnte man gson später ersetzen. Habe es für mehrere große Projekte verwendet und es dauert nur Tage eines Projekts :) https://sites.google.com/site/gson/gson-user-guide Gson ist eine Lib zum Entschlüsseln und Kodieren von Java-Objekten zu JSON. Es ist ziemlich leicht, aber nicht das schnellste da draußen, aber es ist am schnellsten zu integrieren, buchstäblich Oneliner für die Codierung und Decodierung eines Objekts, egal wie groß und komplex das Objekt sein könnte, solange Sie die Domain-Objekte haben für die Daten, mit denen Sie arbeiten.

+0

Ja, das ist fast zu einfach: D – IamAlexAlright

Verwandte Themen