Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何验证字符串在Java中是否为JSON?_Java_Json_Methods - Fatal编程技术网

如何验证字符串在Java中是否为JSON?

如何验证字符串在Java中是否为JSON?,java,json,methods,Java,Json,Methods,我已经说过,我的问题是不同的…问题已经被问过了,但我想要一个java中的预定义方法,其中checksgiven字符串是否为json格式 如果没有预定义的方法,那么至少告诉一个代码,该代码是否检查JSON格式,而不使用try-catch块 提前感谢…使用字符串中的JSONObject的构造函数 try { JSONObject o = new JSONObject(yourString); } catch (JSONException e) { LO

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

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


提前感谢…

使用字符串中的JSONObject的构造函数

    try {
        JSONObject o = new JSONObject(yourString);
    } catch (JSONException e) {
        LOGGER.error("No valid json");
    }

从字符串中使用JSONObject的构造函数

    try {
        JSONObject o = new JSONObject(yourString);
    } catch (JSONException e) {
        LOGGER.error("No valid json");
    }
只需在此函数中传递任何字符串

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


只需在此函数中传递任何字符串。

是否有任何方法?哪一个不使用try-catch块?好吧,这是更好的方法,您可以构建一个包含该块的方法,以避免编写多个catch。根据你的要求可以接受吗?谢谢你的回复。我只是根本不想用试抓块。就像在javascript中一样,我们有一个预定义的函数来验证字符串是否为json。。所以我想java中是否有任何东西可以自动检查有效的json。。我想要布尔值jsIsValid=method(string)@edsheeran首先,Java不是JavaScript。处理它。甚至,有什么办法吗?哪一个不使用try-catch块?好吧,这是更好的方法,您可以构建一个包含该块的方法,以避免编写多个catch。根据你的要求可以接受吗?谢谢你的回复。我只是根本不想用试抓块。就像在javascript中一样,我们有一个预定义的函数来验证字符串是否为json。。所以我想java中是否有任何东西可以自动检查有效的json。。我想要布尔值jsIsValid=method(string)@edsheeran首先,Java不是JavaScript。处理它。甚至。使用
try-catch
有什么问题?如图所示,可以很容易地使用
try-catch
来完成。使用
try-catch
可以很容易地完成
try-catch
来完成。var-jsonStr的可能重复不会出现在函数体中,只是修复了变量命名。谢谢你提到我认为这件需要改进。下面的示例返回true,例如{“name”:mkj123 mk}var jsonStr没有出现在函数body中只是修复了变量命名。谢谢你提到我认为这件需要改进。下面的示例返回true,例如{“name”:mkj123 mk}
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;
        }