我已经说过了,我的问题不同了......问题已经被问到了here,但是我想要一个java中的预定义方法,其中checkgiven字符串是否是json格式。
如果没有预定义的方法,那么至少告诉一个检查JSON格式的代码,不使用try catch块。
提前致谢...
答案 0 :(得分:1)
从String
中使用 JSONObject的构造函数 try {
JSONObject o = new JSONObject(yourString);
} catch (JSONException e) {
LOGGER.error("No valid json");
}
答案 1 :(得分:0)
public boolean isValidJson(String jsonStr) {
Object json = new JSONTokener(data).nextValue();
if (json instanceof JSONObject || json instanceof JSONArray) {
return true;
} else {
return false;
}
}
只需在此函数中传递任何字符串即可。
答案 2 :(得分:0)
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
*
* @param inputJosn
* @return
* @throws IOException
* @throws JsonParseException
* @throws JsonProcessingException
*/
private static boolean isJsonValid(String inputJosn) throws JsonParseException, IOException {
ObjectMapper mapper = new ObjectMapper();
mapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY);
JsonFactory factory = mapper.getFactory();
JsonParser parser = factory.createParser(inputJosn);
JsonNode jsonObj = mapper.readTree(parser);
System.out.println(jsonObj.toString());
return true;
}