0

发送大型 pojo 时,我想检查字节变化而不是结构的细节差异。也许在内存中序列化和散列 pojo,但这在 Android 设备上可能会失败。任何想法都会令人兴奋。也许应该遍历它的dom样式。

出去

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();

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();
4

1 回答 1

0

我想检查字节变化而不是结构的细节差异

我不确定那是什么意思。

将大型本地 gson 与远程 gson 进行比较

我不清楚在哪里进行比较,完整的输入和输出内容是否可以在同一个地方获得,或者像哈希这样的东西 - 如前所述 - 用于表示一端的东西,或者另一个。

如果在比较时可以使用完整的输入和输出结构,那么...

我可能不会将 Gson API(或任何序列化 API)用于数据结构(或服务消息)值比较的任务。我更喜欢仅将 Gson 之类的序列化 API 用于序列化/反序列化任务,从而使系统的这些层保持精简和简单合理。

所以,我可能更喜欢反序列化到 target LargeTestPojo,并为它实现一个compareTo和/或equals方法,或者只是将两个数据集放入一个映射中,然后从那里进行比较。

于 2013-02-20T02:02:09.140 回答