2013-04-18 16 views
8

W Javie, wiem, że można sprawdzić, czy klucz jest obecny z metodą isNull(). Czy istnieje sposób sprawdzenia, jakie dane zawiera klucz?Jak można określić typ danych właściwości JSON?

Rozważ poniższe przykłady.

chciałbym funkcji takich jak JSONBody.getDataType ("klucz") i byłoby powrócić String

{ 
    "key" : "value" 
} 

chciałbym funkcji takich jak JSONBody.getDataType ("klucz") i byłoby powrócić JSONObject

{ 
    "key" : { 
     "parm1" : "value1", 
     "parm2" : "value2" 
    } 
} 

chciałbym funkcji takich jak JSONBody.getDataType ("klucz") i byłoby powrócić JSONArray

{ 
    "key" : [ 
     "value1", 
     "value2", 
     "value3" 
    ] 
} 

chciałbym funkcji takich jak JSONBody.getDataType („klucz”) i byłoby powrócić Boolean

{ 
    "key" : true 
} 

Czy coś takiego istnieje?

+1

Wystarczy popatrzeć na http://stackoverflow.com/questions/9844494/json-to-java-objects-best-practice-for-modeling-the-json-stream .... tam nie ma xsd;) – MemLeak

+2

Twój przykład tablicy jest (niepoprawnie) definiujący obiekt JSON, a nie tablicę; trzeba zmienić nawiasy klamrowe na nawiasy kwadratowe. –

+0

Możesz zrobić IF, i użyć instancji równej lub równej. Zrealizuj ten wątek: http://stackoverflow.com/questions/106336/how-do-i-find-out-what-type-each-object-is-in-a-arraylistobject – MasNotsram

Odpowiedz

6
JSONObject stuff = new JSONObject(whatever); 
Object thing = stuff.get("key"); 
String classNameOfThing = thing.getClass().getName(); 
Systen.out.println("thing is a " + classNameOfThing); 
if (thing instanceof Integer) { 
    System.out.println("thing is an Integer"); 
} 
+0

doskonały. dzięki – David

Powiązane problemy