【发布时间】:2021-05-10 21:15:04
【问题描述】:
Json 只有整数和字符串。我有一个“列表”,里面的“地图”,我没有附加数据,因为它们可以是任何。问题是我在这个“字符串”类型的“列表”中有一个日期,我该如何更改为“日期”类型?在代码list.each和map.each中,某个步骤的值将是String类型的日期值,我可以使用正则表达式检查日期,但是如何将其更改为Date? map.put?
def list = jsonSlurper.parseText JSON
def typeMap = [:].withDefault { key -> "String" }
list.each { map ->
map.each { key, values ->
if (values != null) {
typeMap[key] = getTypeDef(values)
println('value ' + values + ' typeMap ' + typeMap[key])
//typeMap[key] = values.getClass().simpleName
}
}
}
一个用于测试值的正则表达式将被日期掩盖以更改类型。
if (values ==~ /^(0?[1-9]|[12][0-9]|3[01])[\\/\-.](0?[1-9]|1[012])[\\/\-.]\d{4}\s[0-2]?[0-9]:[0-5][0-9]:[0-5][0-9]\u0024/){}
【问题讨论】:
-
如果您需要这种级别的详细信息,是否有特定原因您不使用 Jackson 和干净的 POGO?
-
我不知道这个,你能告诉我如何更改这个“列表映射”中变量的类型或如何读取 json 以便在输入列表时,日期是日期而不是字符串?
标签: list dictionary groovy jsonslurper