我有方法必须检查JSON是否有效,该方法在如何检查给定字符串在Java中是否为有效JSON上找到,但是它不起作用。
public static boolean isJson(String Json) { Gson gson = new Gson(); try { gson.fromJson(Json, Object.class); return true; } catch (com.google.gson.JsonSyntaxException ex) { return false; } }
如果我将此方法与某些字符串一起使用,它将始终返回true。例如:
System.out.println(renderHtml.isJson("{\"status\": \"UP\"}"));
它给了我true,
true
System.out.println(renderHtml.isJson("bncjbhjfjhj"));
true也给了我
org.json根据如何检查给定字符串在Java中是否为有效JSON,我找到了解决方案但使用库
org.json
public static boolean isJson(String Json) { try { new JSONObject(Json); } catch (JSONException ex) { try { new JSONArray(Json); } catch (JSONException ex1) { return false; } } return true; }
现在,随机查找的字符串bncjbhjfjhj是false并且{"status": "UP"}为真。
bncjbhjfjhj
false
{"status": "UP"}