繁体   English   中英

无法在scala中使用杰克逊fasterxml将JSON数组反序列化为类对象

[英]Unable to deserialize json array to class object using jackson fasterxml in scala

我正在尝试在scala中使用杰克逊更快的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]]

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM