に格納されている値の型を取得しようとしていますJSONObject
。
String jString = {"a": 1, "b": "str"};
JSONObject jObj = new JSONObject(jString);
key に格納されている値の型を取得することは可能ですか"a"
? みたいなjObj.typeOf("a") = java.lang.Integer
?
JSONObject.get()
メソッドを使用してJSONからオブジェクトを取得し、instanceof
演算子を使用してオブジェクトのタイプを確認できます。
これらの行の何か:-
String jString = "{\"a\": 1, \"b\": \"str\"}";
JSONObject jObj = new JSONObject(jString);
Object aObj = jObj.get("a");
if (aObj instanceof Integer) {
// do what you want
}
最善の解決策は、演算子JSONObject.get()
を使用して型を使用して確認することです。instanceof
instanceof
私のために働いていません。最新バージョンでは、フィールドのデータ型を動的に取得する代わりに、次のようJSONObject.get
に取得することができますJsonPrimitive
JsonPrimitive value = json.getAsJsonPrimitive('key');
今、あなたは呼び出すことができます
value.isNumber()
value.isBoolean()
value.isString()
すべてのデータを as として解析し、String
それを目的の型に変換してみることができます。この時点で、例外をキャッチして、解析されたデータの型を特定できます。