如何在Java中验证字符串是JSON还是不是?

时间:2017-01-25 11:09:33

标签: java json methods

我已经说过了,我的问题不同了......问题已经被问到了here,但是我想要一个java中的预定义方法,其中checkgiven字符串是否是json格式。

如果没有预定义的方法,那么至少告诉一个检查JSON格式的代码,不使用try catch块。

提前致谢...

3 个答案:

答案 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;
        }