将String转换为JSONArray / JSONObject时出现问题

时间:2015-10-07 14:07:10

标签: java org.json

我必须检查给定的值是否是JSONObject .... 示例输入:

Object obj = "{} testing"

我正在检查以下代码:

public boolean isJSONValid(Object obj) {
 try {
   new JSONObject(obj);
 } catch(JSONException e) {
   return false;
 }
 return true;
}

但是对于上面的输入它给出了真的,我正在使用org.json jar文件。

2 个答案:

答案 0 :(得分:1)

要检查对象是否是JSONObject,请使用instanceof

if(obj instanceof JSONObject){
  //your code here
}

您可以使用以下方法测试String是否为有效的JSON: How to check whether a given string is valid JSON in Java 但我假设你已经发现了,看着类似的代码。

修改

给定obj = "{} testing";

时,此函数返回false
public boolean isJSONObject(Object obj) {
    if(obj instanceof JSONObject){
        return true;
    }
    return false;
}

答案 1 :(得分:0)

创建后,可以将“new JSONOBJECT(obj)”打印成字符串吗?我认为在将标准对象传递给构造函数时,它使用反射将该标准对象转换为JSON对象。参考this question的答案。它显示了如何检查对象是否是JSONObject的实例。