データをシリアル化してローカル ファイルに保存するプログラムと、データをロードして使用するプログラムの 2 つの異なるプログラムがあります。問題は、逆シリアル化が機能していないことです。データをどのようにシリアル化/逆シリアル化しても、シリアル化されたのと同じ構造を再構築できません。
編集:シリアル化アクションの結果をファイルからロードする際の問題。
Edit2:私が得る例外は、スレッド「メイン」の例外 java.lang.ClassCastException: java.util.ArrayList cannot be cast to myImage です
ここでわかるように、私は深いシリアル化を使用します。
ArrayList<ArrayList<Images>> data;
...filling the data object with my data...
String serialized = new JSONSerializer().exclude("*.class")
.deepSerialize(data);
serealize アクションの出力は次のようになります。
[
[
{"datetaken":"date-time","filePath":"a-file-path","folderPath":"a-folder-path","meta1":"val1","meta2":"val2"}
]
[
{more..},
{more..}
]
]
そして、デシリアライズのために私は使用します:
ArrayList<ArrayList<TrimmedImageData>> data;
...some initializing code...
data = (ArrayList<List<Images>>) new JSONDeserializer<ArrayList<List<Images>>>()
.use("value.values", myImage.class)
.deserialize(new BufferedReader(new FileReader(
resultsFile)));