【发布时间】:2020-05-29 23:30:41
【问题描述】:
我是 Groovy 和 Java 的新手。 我有从某个对象返回 LinkedHashMap 的函数。它的工作原理:
def get_map(Node) {
nodeRootName = Node.name()
if (Node.childNodes().size() == 0) {
return [(nodeRootName): (Node.text())]
} else {
subMap = [(nodeRootName):[]]
for (subNode in Node.childNodes()) {
if (subNode.name() != "cryptoSigns") {
subMap.(subMap.keySet()[0]).add(get_map(subNode))
}
}
return subMap
}
}
在代码中调用这个函数:
nodeMap = [(rootNodeName): [data:[]]]
for (subNode in node.childNodes()[0].childNodes()) {
nodeMap.position.data.add(get_map(subNode))
}
}
组成LinkedHashMap的数组[data:[]]。
现在,我需要从数组中创建一个 LinkedHasMap。 我尝试在我的函数中制作一张地图。它可以是一个地图或带有键的地图数组。例如:
[data:[
key1: value,
key2:[
[key: value],
[key: [
[key: value],
[key: value]
]
]
]]
我试试:
def get_map(Node) {
nodeRootName = Node.name()
if (Node.childNodes().size() == 0) {
Map map = new HashMap()
map.put((nodeRootName), (Node.text()))
return map
} else {
Map subMap = new HashMap()
for (subNode in Node.childNodes()) {
subMap.put((nodeRootName), (get_map(subNode)))
}
return subMap
}
}
调用函数:
Map nodeMap = new HashMap()
Map data = new HashMap()
for (subNode in node.childNodes()[0].childNodes()) {
data.put(get_map(subNode))
nodeMap.put((rootNodeName): (data))
}
jsonObject.nsiKTRUs.add(nodeMap)
但我有错误:
groovy.lang.MissingMethodException:没有方法签名:java.util.HashMap.put() 适用于参数类型:(HashMap) 值:[[code:01.11.11.111-00001]] at data.put(get_map(subNode))
在地图中添加我的值有多正确? 我的输入数据:
<xml>
<data>
<key>value</key>
<key2>
<key21>value</key>
<key22>value</key>
<key23>
<key231>value</key>
</key>
</key2>
</data>
<xml>
自定义嵌入。
需要输出
[data:[
key: value,
key2:[
key21: value,
key22: value,
key23:[
key231: value
]
]
]
]
输出数据需要添加到另一个LinkedHashMap
【问题讨论】:
-
阅读上面的“代码”真的很痛苦......你能简单地显示输入数据和所需的输出吗?
-
输入:
<xml><data><key>value</key><key2><key21>value</key><key22>value</key><key23><key231>value</key></key></key2></data><xml>输出[data:[key: value, key2: [key21: value, key22: value, key23:[key231: value]]]] -
我只需要得到这张地图:
[data:[key: value, key2: [key21: value, key22: value, key23:[key231: value]]]] -
把那些请放到你原来的问题中,这样它更具可读性
-
我更新我的帖子