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
- 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.
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