Java 检测JSON属性的类型

Java 检测JSON属性的类型,java,android,Java,Android,JSON: 我想检测attribute1和attribute2的类型: 属性1是整数 attribute2是字符串 jsonObject.getAttributeType(“attribute2”);//应输出:字符串/整数/布尔值 用PHP或OBJC很容易实现。建议?(我假设org.json包的Android版本与您在json.org网站上找到的版本相同……) JSONObject上唯一能给出基础值的方法。。。不强迫它。。。isJSONObject.get(name)。如果已知name,则

JSON:

我想检测attribute1和attribute2的类型:

  • 属性1是整数
  • attribute2是字符串
jsonObject.getAttributeType(“attribute2”);//应输出:字符串/整数/布尔值

用PHP或OBJC很容易实现。建议?

(我假设
org.json
包的Android版本与您在json.org网站上找到的版本相同……)

JSONObject
上唯一能给出基础值的方法。。。不强迫它。。。is
JSONObject.get(name)
。如果已知
name
,则结果是在内部表示该值的对象。我还没有对代码进行全面的研究,但我认为它只能是以下类型之一:

{"attribute1":11, "attribute2":"string atribute"}
您应该能够使用
instanceof
来区分这些


但你应该问问自己,这是否是正确的做法。通过
JSONObject
API处理JSON对象属性的常规方法是使用将它们强制为您期望的类型的方法。在大多数情况下,数字是否以
42
42.0
“42”
的形式发送并不重要。。。如果意图很容易确定,最好不要挑剔。

您不能使用jsonObject.get()并用instanceof检查结果吗?
  Boolean, Long, Double, String, JSONArray, JSONObject