【发布时间】:2020-11-12 21:49:15
【问题描述】:
我有类似的数据
[{"ProjectId":1476401625,"ProjectName":"This is project name","ProjectPostcode":4178},{"ProjectId":2343,"ProjectName":"This is project 2 name","ProjectPostcode":5323}]
我需要将其反序列化为 Java 对象并使用此代码:
PCollection<Project> deserialisedProjectObject = projectFile.apply("Deserialize Projects", ParseJsons.of(Project.class))
.setCoder(SerializableCoder.of(Project.class));
但我总是出错
Exception in thread "main" org.apache.beam.sdk.Pipeline$PipelineExecutionException: java.lang.RuntimeException: Failed to parse a com.lendlease.dp.entity.Project from JSON value: [{"ProjectId":1476401625,"ProjectName":"This is project name","ProjectPostcode":4178},{"ProjectId":2343,"ProjectName":"This is project 2 name","ProjectPostcode":5323}]
如果我将代码更改为:
PCollection<Project[]> deserialisedProjectObject = projectFile.apply("Deserialize Projects", ParseJsons.of(Project[].class))
.setCoder(SerializableCoder.of(Project[].class));
跑步者能够反序列化它,但我需要这一行来返回项目的集合;不是项目数组的集合
【问题讨论】:
-
如果没有正确的格式真的很难阅读,您可以使用 ``` ``` 表示 json。这样你就会更加关注你的问题
标签: java apache-beam json-deserialization