检查对象是否是Android / Java中的真实JSONArray或JSONObject

时间:2014-02-16 12:30:36

标签: java android

我做了一些研究,我发现了这两种检查方法,但我不知道哪种方法会更慢并导致更多开销?

方法1:

public boolean isJSONValid(String test)
{
    try {
        new JSONObject(test);
        return true;
    } catch(JSONException ex) { 
        return false;
    }
}

方法2:

if (Law.get("LawSet") instanceof JSONObject)
 {
    JSONObject Lawset = Law.getJSONObject("LawSet");                        
 }
 else if (Law.get("LawSet") instanceof JSONArray)
{
    JSONArray Lawset = Law.getJSONArray("LawSet");
}

编辑:显然这两种方法都不会根据我在这个问题下面的评论工作,所以如何检查传入的字符串是否是有效的JSONObject或JSONArray?

1 个答案:

答案 0 :(得分:0)

试试这个。

String myData= "{ ... }";
Object json = new JSONTokener(myData).nextValue();
if (json instanceof JSONObject)
  //This is object
else if (json instanceof JSONArray)
  //This is array

它会正常工作