2013-04-18 3 views
8

В Java я знаю, что вы можете проверить, присутствует ли ключ с помощью метода isNull(). Есть ли способ проверить, какие данные хранит ключ?Как определить тип данных свойства JSON?

Рассмотрим следующие примеры.

Я хотел бы функцию, как JSONBody.getDataType («ключ»), и он будет возвращать строку

{ 
    "key" : "value" 
} 

Я хотел бы функцию, как JSONBody.getDataType («ключ»), и он вернется JSONObject

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

Я хотел бы функцию, как JSONBody.getDataType ("ключ"), и он вернется JSONArray

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

Я хотел бы функцию, как JSONBody.getDataType («ключ»), и он будет возвращать булево

{ 
    "key" : true 
} 

Существует ли что-то подобное? не

+1

Посмотрите http://stackoverflow.com/questions/9844494/json-to-java-objects-best-practice-for-modeling-the-json-stream .... нет xsd;) – MemLeak

+2

Пример вашего массива (неверно), определяющий объект JSON, а не массив; необходимо переключить фигурные скобки для квадратных скобок. –

+0

Вы можете сделать IF else и использовать экземпляр или equals. Оформить заказ на эту тему: http://stackoverflow.com/questions/106336/how-do-i-find-out-what-type-each-object-is-in-a-arraylistobject – MasNotsram

ответ

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

безупречный. благодаря – David

Смежные вопросы