首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FlexiJSon -序列化反序列化

FlexiJSon -序列化反序列化
EN

Stack Overflow用户
提问于 2014-03-02 17:41:56
回答 1查看 143关注 0票数 0

我有两个不同的程序-一个序列化数据并将其保存到一个本地文件,另一个程序加载数据并使用它。问题是反序列化不起作用--无论我如何序列化/反序列化数据,都不能重构它所使用的相同的结构。

编辑:问题,特别是从文件中加载序列化操作的结果。

Edit2:我得到的异常是线程"main“中的异常java.lang.ClassCastException: java.util.ArrayList不能转换为myImage

我使用深度序列化,如您在这里所看到的:

代码语言:javascript
复制
ArrayList<ArrayList<Images>> data;
...filling the data object with my data...
String serialized = new JSONSerializer().exclude("*.class")
                .deepSerialize(data);

serealize的输出如下所示:

代码语言:javascript
复制
[
 [
   {"datetaken":"date-time","filePath":"a-file-path","folderPath":"a-folder-path","meta1":"val1","meta2":"val2"}
 ]
 [
   {more..}, 
   {more..}
 ]
]

对于反序列化,我使用:

代码语言:javascript
复制
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)));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-02 22:08:15

我的问题有两件事:

  1. 我不包括"*.class“。在我的情况下没有好的理由去做,所以我把它移走了。
  2. 我在反序列化部分中进行了更改,以获得数据的字符串,我使用nio读取数据,然后将其与StringBuilder连接起来,如下例所示:

尝试{ List res = Files.readAllLines(Paths.get(myObject),StandardCharsets.UTF_8);StringBuilder anotherTest =新StringBuilder();for(String str : res) { anotherTest.append(str);} serializedString = anotherTest.toString();} catch (IOException e) {e.printStackTrace()};

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22130979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档