45 Stimmen

Bessere Möglichkeit zu bestimmen, ob ein Wert im JSON-Feed existiert

Ich benutze die org.json.JSONObject (und Parser) in einer Android-App zum Parsen eines JSON-Feeds. Wie kann ich am besten feststellen, ob eine Eigenschaft in einem der zurückgegebenen Objekte vorhanden ist oder nicht?

Angenommen, ich habe einen JSON-Feed mit "News". Einige der Nachrichten haben eine Eigenschaft namens "UnpublishDate" (das ist das Datum, an dem die betreffende Nachricht nicht mehr aktiv ist), während einige der Nachrichten diese Eigenschaft nicht haben.

Die beste Lösung, die mir eingefallen ist (wenn auch noch nicht implementiert), besteht darin, einfach ein "try-catch" um die theJSONObject.get("UnpublishDate") - Kennen Sie eine bessere Lösung (die anmutiger ist, wenn die Klasse auf mehrere "optionale" Eigenschaften im JSON-Feed skaliert)?

133voto

james Punkte 25833

Sie können die JSONObject Funktion has :

if(myJSONObject.has("UnpublishDate")) {
    //it has it, do appropriate processing
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X