检测JSON属性的类型

时间:2013-07-09 22:29:16

标签: java android

JSON:

{"attribute1":11, "attribute2":"string atribute"}

我想检测attribute1和attribute2是什么类型的类型:

  • attribute1是整数
  • attribute2是字符串

jsonObject.getAttributeType( “attribute2”); //应该输出:string / integer / boolean。

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

1 个答案:

答案 0 :(得分:2)

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

JSONObject上唯一可以为您提供基础价值的方法...而不是强制它......是JSONObject.get(name)。如果已知name,则结果是在内部表示值的对象。我没有对代码进行全面的拖网,但我认为它只能是以下类型之一:

  Boolean, Long, Double, String, JSONArray, JSONObject

您应该可以使用instanceof来区分这些内容。


但是应该问自己这是否是正确的做法。通过JSONObject API处理JSON对象属性的普通方法是使用将它们强制转换为您期望的类型的方法。在大多数情况下,如果号码以4242.0"42"发送,则无关紧要...如果意图很容易确定,最好不要挑剔