1

我需要将一些以编程方式生成的字符串转换为有效的 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 那样描述验证消息的工具?我需要将它呈现给最终用户。

提前致谢!

4

1 回答 1

0

尝试这个:

try{
        JsonObject root = (JsonObject)new JsonParser().parse("{\"data\":\"some data...\"}");  
        System.out.println(root.toString());
    }catch(JsonParseException e){
        System.out.println(e.getMessage());
    }
于 2013-08-28T03:46:14.193 回答