2015-08-13 57 views
2

我使用本教程:Java的春天傑克遜JSON庫返回的Unicode而不是文本

http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/

從我的Java Spring的web應用程序返回JSON。當我在對象中返回一個超過1000個字符的字符串時,字符將被轉換爲\ u0000,僅用於該字符串值。返回之前,該字符串很好。

任何幫助將不勝感激。

+1

這意味着,你的字符串包含空字符。沒有更多細節(CODE),我們無法解釋原因。 –

+0

在999個字符處,它發送正常,在1000個字符處進行編碼。爲什麼它會讓所有字符在1000個字符處爲空字符? – dumkat

+0

你有更好的機會找到自己,因爲你有代碼和其他一切可供選擇。我們沒有任何東西,因爲您選擇不發佈一行代碼。 –

回答

1

這不是一個解決方案,但它是Jackson提供的UTF8JsonGenerator的問題。如果您的字符串長度超過1000個字符,則會調用_writeLongString(_charBuffer, 0, len)。變量_charBuffer只是一個4000字符的空緩衝區(其中的每個值都被設置爲「\ u0000」),因此您會得到一個len -many字符串「\ u0000」。

編輯:升級過去版本2.6.0-RC1應該是修復(通過https://github.com/FasterXML/jackson-core/issues/194

+0

非常感謝您的反饋。我會嘗試一下並回復你。 – dumkat

+0

沒問題。祝你好運! – gonzofish