0
Я пытаюсь создать глубокую копию карты JSON в groovy для скрипта конфигурации сборки.Groovy deep copy json map
Я попытался выбранный ответ
def deepcopy(orig) {
bos = new ByteArrayOutputStream()
oos = new ObjectOutputStream(bos)
oos.writeObject(orig); oos.flush()
bin = new ByteArrayInputStream(bos.toByteArray())
ois = new ObjectInputStream(bin)
return ois.readObject()
}
из this existing question, но он не для карт в формате JSON с java.io.NotSerializableException: groovy.json.internal.LazyMap
, как я могу создать глубокую копию карты JSON?
Я думаю, что, если вы можете, вы должны сделать резервную копию немного дальше. «JsonSlurper» в API Groovy генерирует эти экземпляры «LazyMap», которые играют хаос с различными аспектами развития предприятия, в частности требования к сериализуемости бинов (как вы открываете). Если вы можете переключиться на «JsonServerClassic», который генерирует обычные экземпляры Groovy/Java 'LinkedHashMap', ваша проблема« NotSerializable »должна исчезнуть. – BalRog