2012-12-03 33 views
0

嘿傢伙程序員,解析VS治療對象的字符串(JSON)

我在JAVA應用程序的工作在速度是關鍵。我需要處理JSON流(請求服務器返回一個json對象,我將在以後繼續分析它)。 Json對象大約有2000個字符長,所以我想知道把它當作一個字符串(使用indexOf,substring等等)而不是使用JSON解析器會更快。 (我用Jackson和Json-lib沒有明顯的區別)?它會爲我節省幾毫秒嗎?

謝謝!

+0

取決於您解析多少數據。顯然,如果你只是從中獲得一個價值,抓住這一塊它會更快。 –

+1

如果速度是您用例的一個重要考慮事項,我建議您嘗試兩種實現並查看它爲您的數據帶來了多大的差異。 –

回答

0

這取決於你需要從中知道什麼,但總的來說,我認爲最好使用JSON解析器。解析器將被高度優化,所以如果你需要讀取許多值,它將會打敗你自己的嘗試。此外,解析器將忽略空白,而你必須明確地處理它。

檢查自己的東西比想象的要困難。例如,如果您需要知道屬性「x」是否存在,則不能只檢查字符串x的存在,因爲它也可以是值的一部分。你不能尋找x:,因爲他們之間可能有空間。如果你發現x,你知道它是否在正確的位置?它是否是正確的對象的一部分,或者可能是你根本沒有期望的子對象?

在你知道它之前,你正在自己編寫一個解析器。

如果你不能注意到其中的差異,不要打擾和使用解析器,因爲它是最簡單,最安全和最靈活的選擇。只有在需要時纔開始優化。