57

に格納されている値の型を取得しようとしていますJSONObject

String jString = {"a": 1, "b": "str"};
JSONObject jObj = new JSONObject(jString);

key に格納されている値の型を取得することは可能ですか"a"? みたいなjObj.typeOf("a") = java.lang.Integer

4

6 に答える 6

84

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
}
于 2013-04-10T08:06:22.823 に答える
8

最善の解決策は、演算子JSONObject.get()を使用して型を使用して確認することです。instanceof

于 2013-04-10T08:03:39.687 に答える
1

instanceof私のために働いていません。最新バージョンでは、フィールドのデータ型を動的に取得する代わりに、次のようJSONObject.getに取得することができますJsonPrimitive

JsonPrimitive value = json.getAsJsonPrimitive('key');

今、あなたは呼び出すことができます

value.isNumber() value.isBoolean() value.isString()

于 2020-11-12T08:51:20.183 に答える
0

すべてのデータを as として解析し、Stringそれを目的の型に変換してみることができます。この時点で、例外をキャッチして、解析されたデータの型を特定できます。

于 2013-04-10T08:07:09.120 に答える