2013-08-28 21 views
1

我需要將一些以編程方式生成的字符串轉換爲有效的JSON。是否有一個JSON解析器可以告訴錯誤在錯誤的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 diplayed異常消息並不像描述:

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

那麼,有沒有在Java作爲一種工具描述爲驗證消息的jsonlint?我需要將其呈現給最終用戶。

在此先感謝!

+1

這有什麼錯用jsonlint呢? – djechlin

+1

「描述性」?你需要這個呈現給用戶嗎?由於Gson消息告訴Jsonlint同樣的事情,它只是不枚舉技術上的「價值」。 –

+0

是的,我需要向用戶提供驗證消息。我會使用jsonlint,但不知道如何將它集成到Java。這將是一個擺動應用程序。 – Boel

回答

0

試試這個:

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

謝謝,但這次要解析的字符串不是格式錯誤,並且excepcion不會啓動。 – Boel