是否有一个JSON解析器可以告诉错误的json中错误的位置?

时间:2013-08-28 00:11:11

标签: java json gson

我需要将一些以编程方式生成的字符串转换为有效的JSON。

我正在使用Gson以这种方式验证json字符串:

try{
    new com.google.gson.JsonParser().parse("{\"data\":\\\"some data...\"}");                
}catch(JsonParseException e){
    System.out.println(e.getMessage());
}

我知道这个json不行,但我需要实现一种方法来了解错误的确切位置。 如果我在jsonlint中验证该字符串,则显示的错误是:

Parse error on line 2:
{    "data": \"somedata..."}
-------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[' 

然而,Gson所展示的异常消息并不具有描述性:

com.google.gson.stream.MalformedJsonException: Expected value at line 1 column 9

那么,java中的工具是否像jsonlint一样描述性验证消息?我需要将它呈现给最终用户。

提前致谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

try{
        JsonObject root = (JsonObject)new JsonParser().parse("{\"data\":\"some data...\"}");  
        System.out.println(root.toString());
    }catch(JsonParseException e){
        System.out.println(e.getMessage());
    }