Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在scala中使用jackson fasterxml将json数组反序列化为类对象_Java_Json_Scala_Serialization - Fatal编程技术网

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

Java 无法在scala中使用jackson fasterxml将json数组反序列化为类对象,java,json,scala,serialization,Java,Json,Scala,Serialization,我试图在scala中使用xml将类对象序列化为json,并将json反序列化为类对象。这是我的密码 var jsonDataString = objectMapper.writeValueAsString(nodeRepoList) var deserializedData: List[NodeRepository] = objectMapper.readValue(jsonDataString, classOf[List[NodeRepository]]); json如下所示 [ { "

我试图在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(NodeId -> 1, ClassName -> RowFilter, TargetColumn -> 10, Value -> cool, Operation -> sample, DiagramId -> 2)] 

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

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

classOf[List[NodeRepository]]
试用

classOf[Array[NodeRepository]]

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

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

classOf[List[NodeRepository]]
试用

classOf[Array[NodeRepository]]

结果将是一个数组而不是列表,但对象将反序列化为NodeRepository而不是Map。另外,在scala中将数组转换为列表非常简单(toList方法就是这样)

问题出在哪里?反序列化的数据应该是这样的[RowFilter[Operation:sample,Value:cool,Target:10,ClassName:RowFilter,DiagramId:2,NodeId:1],ColumnFilter[columnToInclude:sample,ClassName:ColumnFilter,DiagramId:2,NodeId:1]]因为类是列表类型。但实际上我是以映射类型获取的。如何获取类的反序列化数据,而不是映射类型?有什么问题吗?反序列化的数据应该像这样[RowFilter][Operation:sample,Value:cool,Target:10,ClassName:RowFilter,DiagramId:2,NodeId:1],ColumnFilter[columnToInclude:sample,ClassName:ColumnFilter,DiagramId:2,NodeId:1]]因为类是列表类型。但实际上我是作为映射类型获取的。如何获取类的反序列化数据,而不是映射类型?