如何从JSONObject检查值的类型?

Ung*_*viu 44 java json

我正在尝试获取存储在a中的值的类型JSONObject.

String jString = {"a": 1, "b": "str"};
JSONObject jObj = new JSONObject(jString);
Run Code Online (Sandbox Code Playgroud)

是否可以获取存储在key中的值的类型"a"; 类似的东西jObj.typeOf("a") = java.lang.Integer

Sud*_*hul 69

您可以使用该get()方法从JSON获取对象,然后使用instanceof运算符检查Object的类型.像这样: -

String jString = "{\"a\": 1, \"b\": \"str\"}";
JSONObject jObj = new JSONObject(jString);
Object aObj = jObj.get("a");
if(aObj instanceof Integer){
    System.out.println(aObj);
}
Run Code Online (Sandbox Code Playgroud)


Bob*_*der 9

最好的解决方案是使用JSONObject.get()并使用instanceof运算符检查类型.