如何验证字符串在Java中是否为JSON?
我已经说过,我的问题是不同的…问题已经被问过了,但我想要一个java中的预定义方法,其中checksgiven字符串是否为json格式 如果没有预定义的方法,那么至少告诉一个代码,该代码是否检查JSON格式,而不使用try-catch块如何验证字符串在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
提前感谢…使用字符串中的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;
}