java - 无法在 scala 中使用 jackson fastxml 将 json 数组反序列化为类对象

标签 java json scala serialization

我正在尝试使用scala中的jackson fast xml将类对象序列化为json并将json反序列化为类对象。这是我的代码。

var jsonDataString = objectMapper.writeValueAsString(nodeRepoList)
var deserializedData: List[NodeRepository] = objectMapper.readValue(jsonDataString, classOf[List[NodeRepository]]);

json 如下所示。

[ {
  "Operation" : "sample",
  "Value" : "cool",
  "TargetColumn" : "10",
  "ClassName" : "RowFilter",
  "DiagramId" : "2",
  "NodeId" : "1"
}, {
  "columnToInclude" : "sample",
  "ClassName" : "ColumnFilter",
  "DiagramId" : "2",
  "NodeId" : "1"
} ]

反序列化为类对象时,输出如下。输出在 Map 中。它不应该是 Map 类型。它应该被反序列化为类对象。

[Map(NodeId -> 1, ClassName -> RowFilter, TargetColumn -> 10, Value -> cool, Operation -> sample, DiagramId -> 2)] 

请告诉我如何解决该问题。

最佳答案

我最近也遇到了同样的问题。从列表更改为数组解决了我的问题。 而不是

classOf[List[NodeRepository]]

尝试使用

classOf[Array[NodeRepository]]

您的结果将是一个数组而不是列表,但对象将被反序列化为NodeRepository而不是Map。在 scala 中将数组转换为列表也非常简单(例如 toList 方法)

关于java - 无法在 scala 中使用 jackson fastxml 将 json 数组反序列化为类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43094200/

相关文章:

java - 为什么 OpenJDK 不允许我安装 SBT?它检索内存错误

scala - Spark 提交时 ClassNotFoundException scala.runtime.LambdaDeserialize

java - 如何使用java对对象列表进行排序

java - `AsyncExecutor` 意味着一次执行一个 `AsyncTask` 有时会同时执行两个

json - Go 和 JSON : how to dynamically load a field

string - Scala中如何找到两个字符串的最长公共(public)前缀?

java - Spring安全OAuth 2

java - 如何在 Hibernate 注解中创建 Tinyint Field

java - Genson 多态/通用序列化

java - 使用 POST 方法的 Web 服务响应 "Unsupported Media Type"