L'oggetto JSON sto ricevendo simile a questa:Come verificare se l'oggetto JSON è vuoto in Java
[{"foo1":"bar1", "foo2":"bar2", "problemkey": "problemvalue"}]
Quello che sto cercando di verificare è l'esistenza di problemvalue
. Se problemvalue
restituisce un oggetto JSON, sono felice. In caso contrario, restituirà come {}
. Come posso testare questa condizione? Ho provato diverse cose inutilmente.
Questo è quello che ho provato finora:
// if (obj.get("dps") == null) { //didn't work
// if (obj.get("dps").equals("{}")) { //didn't work
if (obj.isNull("dps")) { //didn't work
System.out.println("No dps key");
}
mi aspettavo una di queste linee per la stampa "Nessuna chiave dps" perché {"dps":{}}
, ma per qualsiasi motivo, non lo è. Sto usando org.json
. Il file jar è org.json-20120521.jar
.
perché non basta 'System.err.println (obj.get (" dps "))'? – djechlin
@djechlin, grazie per il suggerimento. Restituisce "{}", ma per qualche ragione, non colpisce la mia seconda istruzione if sopra. = (Non include spazi aggiuntivi b/ci usato questa linea per assicurarsi che System.out.println ("questo è ciò che dps è:" + obj.get ("dps") + "zzz"); – Classified
Il Il metodo 'equals()' probabilmente non funziona perché quando si stampa l'oggetto nella console, Java sta chiamando 'toString()' sull'oggetto per generare il valore '" {} "'. Ma quando si ' richiamando '.equals (" {} ")', stai confrontando alcuni 'Object' che probabilmente non sono' String', a 'String'. Come soluzione, potresti fare:' obj.get ("dps ") .toString(). equals (" {} ")', ma nel migliore dei casi è una soluzione hacker. –