Methode to cast Object zu JSONObject oder JSONArray je nach Objekt
Habe ich versucht, eine Methode wie diese, aber ich finde keine Lösung:
public static JSONObject or JSONArray objectToJSON(Object object){
if(object is a JSONObject)
return new JSONObject(object)
if(object is a JSONArray)
return new JSONArray(object)
}
Ich habe dies ausprobiert:
public static JSONObject objectToJSONObject(Object object){
Object json = null;
try {
json = new JSONTokener(object.toString()).nextValue();
} catch (JSONException e) {
e.printStackTrace();
}
JSONObject jsonObject = (JSONObject)json;
return jsonObject;
}
public static JSONArray objectToJSONArray(Object object){
Object json = null;
try {
json = new JSONTokener(object.toString()).nextValue();
} catch (JSONException e) {
e.printStackTrace();
}
JSONArray jsonObject = (JSONArray)json;
return jsonObject;
}
Aber wenn ich dann aufrufen objectToJSONArray(Objekt -) ich habe ein JSONObject es kracht, Gießen. Also möchte ich eine generische Methode. Jemanden zu finden, keine Lösung?
Poste bitte Logcat.
InformationsquelleAutor Damia Fuentes | 2015-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, Sie haben gesehen diese Frage.
Sie können sich wahrscheinlich fügen Sie einfach einen Scheck von den Typ mit
instanceof
bevor Sie wieder von der jeweiligen Methode, und geben null zurück, wenn das Objekt nicht dem erwarteten Typ. Das sollte loszuwerden, die classcastexception-Fehler.Beispiel:
Dann können Sie versuchen Sie beide Methoden und die Verwendung der return-Wert der nicht null zurückgeben, so etwas wie dieses:
InformationsquelleAutor Daniel Nugent
JsonArray
ist von Natur aus ein ListeJsonObject
ist von Natur aus ein AnzeigenDa Java unterstützt keine Funktionen mit mehreren return-Typen(es sei denn, es ist eine generische Funktion mit Rückgabetyp akzeptiert als argument - Beispiel), die am meisten einfache Weise durchzuführen, was Sie brauchen, ist die folgende:
Alternative zu dieser, wenn Sie wollen, dass es so eine Funktion, ist die Umwandlung gegeben
JsonObject
in eineJsonArray
und schreiben Sie Ihren code auf dieJsonArray
, ohne sich sorgen zu machen über den Typ. Die folgende Funktion dient dem genannten Zweck.InformationsquelleAutor Pankaj Singhal