2013-02-16 53 views
0

當發送一個大的pojo時,我想檢查字節變化,而不是詳細的結構差異。也許序列化並散列在內存中的pojo,但可以在Android設備上失敗。任何想法都會是鞭打。也許應該穿過它的風格。比較大的本地gson和遠程gson

OUT

outputStreamWriter = new OutputStreamWriter(out, "UTF-8"); 
jsonWriter = new JsonWriter(outputStreamWriter); 
jsonWriter.setIndent(" "); 
jsonWriter.setIndent("\t"); 
jsonWriter. beginArray(); 
mygson.toJson(largeTestPojo, LargeTestPojo.class, jsonWriter); 
jsonWriter.endArray(); 
jsonWriter.flush(); 

IN

InputStreamReader isr = new InputStreamReader(in, "UTF-8"); 
StatsTypeAdapterFactory stats = new StatsTypeAdapterFactory(); 
Gson gson = new GsonBuilder().registerTypeAdapterFactory(stats).create(); 
jsonReader = new JsonReader(isr); 
jsonReader. beginArray(); 
largeTestPojo= gson.fromJson(jsonReader, LargeTestPojo.class); 
jsonReader.endArray(); 

回答

0

我要檢查字節的變化和結構沒有詳細說明差異

我不是確定這意味着什麼。

比較大的地方GSON對遠程GSON

這不是很清楚,我在比較發生,完整的輸入和輸出內容是否在同一個地方,或者類似的東西可用散列 - 如前所述 - 用於表示一端或另一端的內容。

如果完整的輸入和輸出結構可在比較的角度,然後...

我很可能不會使用數據結構的任務GSON API(或任何序列化API)(或服務消息)值比較。我更喜歡使用像Gson這樣的序列化API,僅用於序列化/反序列化任務,使系統的這些層保持簡單和合理。

所以,我可能更喜歡反序列化到目標LargeTestPojo,並執行它compareTo和/或equals方法,或者只是把兩個數據集到地圖中,並從那裏進行比較。