java 实现检测一个json字符串是否是正确格式

java 实现检测一个json字符串是否是正确格式如果是正确格式,则返回正确,如果格式有问题,则希望返回错误的位置或者详细点的信息,

ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("js");
String jsonstr = " \r\n  [{}]";
try {
    if (!jsonstr.matches("^[\r\n\f\t\\x20]*[\\{\\[][\\s\\S]*")) {
        throw new ScriptException("必须以{或[开头");
    }
    se.eval("(" + jsonstr + ")");
    System.out.println("是json格式");
} catch (ScriptException e) {
    String exp = e.toString().replaceAll(".*\\:(.*)", "$1");
    System.err.println(exp.replaceAll("\\(.+(?=at)", ""));
}

追问

你好,感谢回答,但是我刚才测试了一下,好像只能识别一组kv,两组都会认为是错误,

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网