如何知道和检查给定的字符串是否是一个合适的JSON?

时间:2014-04-03 05:19:48

标签: android android-json

直截了当我们可以检查给定的字符串是否是正确的JSON格式?我们可以使用

http://jsonlint.com/

http://jsonviewer.stack.hu/等等。

但是如果我们想以编程方式执行相同的任务,我们可以在android中编写验证器方法,因为目前我正在尝试使用如下。

这是实现这一目标的正确方法,因为我编写了给定的函数

public boolean isJSONValid(String test) {

    try {
        new JSONObject(test);
        return true;
    } catch (JSONException ex) {
        try {
            new JSONArray(test);
            return true;
        } catch (JSONException ex1) {
            return false;
        }
    }
}

请建议是否有更好的东西。所有这些我需要检查测试用例,因为我知道服务会处理正确的json。

3 个答案:

答案 0 :(得分:3)

试试这个..

 try {
        Object obj = new JSONTokener(test).nextValue();

        if (obj instanceof JSONObject)
              //you have an object
        else if (obj instanceof JSONArray)
              //you have an array

    } catch (JSONException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

答案 1 :(得分:1)

这可能会对你有帮助,

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

答案 2 :(得分:0)

我认为你应该按照以下方式检查,

public boolean isJSONValid(String test) 
{
    try 
    {
        new JSONObject(test);
        // If JsonObject is ok then check for JSONArray
        try 
        {
            new JSONArray(test);
            return true;
        } catch (JSONException ex1) {
            return false;
        }
    } catch (JSONException ex) {
        try 
        {
            new JSONArray(test);
            return true;
        } catch (JSONException ex1) {
            return false;
        }
    }
}