我已經繼承了一個較大的基於Java的服務器端代碼庫,該代碼庫使用JSON與客戶端進行通信。基於以下幾個原因,基於Jackson的JSON轉換必須使用二進制格式 - 換句話說,我在服務器 一側生成的JSON由字節組成,而不是由字符組成。如何轉換Javascript中的JSON字節
這對於以前的客戶來說不是問題,因爲它們都是基於Java的。我可以使用Jackson庫將二進制文件轉換回對象。不幸的是,我被要求創建一些基於瀏覽器的客戶端,它們需要使用Javascript來接收和顯示JSON信息。
我正在嘗試使用JQuery的JSON轉換函數,但事實證明,無論是JQuery還是常規的Javascript函數都無法將一組JSON字節轉換回對象。我需要將字節轉換回字符,以便將它們轉換回對象。
我瞭解到,爲了將字節轉換爲字符,我必須將字節轉換爲字節數組。這是我遇到問題的地方。
我一直在嘗試使用各種方法將二進制JSON信息轉換回可以使用JSON轉換函數轉換爲有意義的對象的窗體(字節數組)。我已經使用ArrayBuffer以將數據轉換成一個字節的緩衝區試過,則int8Array()函數創建一個字節數組:
var buffer = new ArrayBuffer(obj.payload.length);
var bits = new Int8Array(buffer);
我還試圖使用uint8Array(),並試圖找到的各種其它轉換例程在互聯網上(以及Stack Overflow中),以創建可以轉換爲有意義的字符的數組。我所有的嘗試都在運行時造成錯誤和失敗,或者產生了破壞JSON轉換器的垃圾。
有什麼方法讓Javascript讀取由Jackson生成的一組字節,以便可以使用JSON轉換器將它們轉換回對象?或者,Javascript只能夠轉換JSON字符串?
有人請指教...
你知道,這將有助於?這就是所謂的* JSON字節*的例子 - 這就是說我們可以排除你根本不處理JSON的可能性 –