我需要将一些以编程方式生成的字符串转换为有效的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一样描述性验证消息?我需要将它呈现给最终用户。
提前致谢!
答案 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());
}