2011-07-13 33 views
0

我正在使用Jackson的Streaming API來解析JSON字符串。我需要支持「YES」作爲布爾類型。如何使用Jackson Streaming API處理自定義布爾字符串

JsonFactory f = new JsonFactory(); 

,然後做

JsonParser jp = f.createJsonParser(jsonString); 

再繞jp.nextToken()片循環。尋找必要的起始部分並跳入,根據需要創建我的數組/地圖。這對所有常見的嫌疑人都很有用。然而,當我點擊時,我得到一個例外:

{ "a": false, "b": Yes } 

我需要支持是/否,因爲這是來自另一個系統。

有什麼建議嗎?我試過這個http://hussainpithawala.wordpress.com/2011/05/11/overriding-default-serializationdeserialization-behaviour-of-jackson-json-serializer/,但在這種情況下似乎不起作用。

+1

這真的是無效的JSON {「a」:false,「b」:是}而不是{「a」:false,「b」:「是」}? –

+0

問題是「b」鍵; 「a」鍵解析得很好。 –

+0

沒錯。我問的問題依然存在。 –

回答

2

我建議您向Jackson項目提交一個請求,爲ALLOW_UNQUOTED_VALUES添加一個JsonParser.Feature。 (問題可以在http://jira.codehaus.org/browse/JACKSON提交。)這將允許您處理輸入並提供自定義的反序列化。就像現在的情況一樣,傑克遜會拋出一個例外,並且不會提供處理這個問題的機會,盡我所知。