I have method that have to check if JSON is valid, found on How to check whether a given string is valid JSON in Java but it doesn't work.
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;
}
}
If I use this method with some string it always returns true. For example:
System.out.println(renderHtml.isJson("{\"status\": \"UP\"}"));
it gave me true, and
System.out.println(renderHtml.isJson("bncjbhjfjhj"));
gave me true also.
解决方案
I found solution but using org.json library, according to How to check whether a given string is valid JSON in Java
public static boolean isJson(String Json) {
try {
new JSONObject(Json);
} catch (JSONException ex) {
try {
new JSONArray(Json);
} catch (JSONException ex1) {
return false;
}
}
return true;
}
Now random looking string bncjbhjfjhj is false and {"status": "UP"} is true.