2016-03-08 100 views
0

我打電話第三方API和接收作爲響應下一個字符串:解析JSON陣列周圍的引號

"[{\"name\":\"name\",\"id\":1}]" 

正如我看這不是有效的JSON,因爲它周圍的引號。是否有可能以某種方式將它映射到jackson,gson庫的Java對象?

或者無論如何我應該寫我的自定義轉換器/反序列化器?

+0

* response next string * or * response text string *? – mmuzahid

+0

文本如示例 –

回答

0

您不需要自定義轉換器或解串器。你當然可以寫,但我不會鼓勵你這樣做。明確這裏發生的事情,尤其是當你在一個團隊中工作時。這是錯誤的另一方,他們不輸出有效的JSON。

與傑克遜,反序列化它們的輸出是這樣的:

ObjectMapper mapper = new ObjectMapper(); 
String json = theirOutput.substring(1, theirOutput.length - 1); 
Object myObject = mapper.readValue(json, MyObject.clas); 

凌駕於你爲什麼做這種方式,使每個人都明白這裏發生了什麼一些文檔。在我看來,這是一個比編寫自定義轉換器或解串器更清潔的解決方案。

+0

是的我的意思是我知道如何做到這一點,但我正在使用改造,所以我應該寫一些自定義轉換器到子串響應正文,然後映射它。我想也許有一些魔術功能來逃避這些引號。 –