Groovy: значение LinkedHashMap в кавычках - PullRequest
0 голосов
/ 26 мая 2020

Я новичок в Groovy. Я делаю карту в l oop, как это [(nodeRootName): (value)]

И после всех преобразований она превращается в JSON: def json = new groovy.json.JsonBuilder( map ) И эта черта sh, потому что в карте значение недействительно. Карта вроде как [nsiKTRUs:[[position:[data:[[code:01.11.11.111-00001], [version:1], [inclusionDate:2018-06-16T05:53:14+04:00]... Как поставить value в кавычки? Пробую

String value = ""
value = Node.text()
map = [(nodeRootName): (value)]

и map = [(nodeRootName): ("\"" + ${value} + "\"")] и map = [(nodeRootName): ("${value.toString()}")] Но карта все равно [nsiKTRUs:[[position:[data:[[code:01.11.11.111-00001], [version:1], [inclusionDate:2018-06-16T05:53:14+04:00]...

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Вместо этого:

map = [(nodeRootName): ("${value.toString()}")]

Вы можете сделать так:

map = [(nodeRootName): "\"${value}\""]

Пример:

groovy:000> nodeRootName = 'some root name'
===> some root name
groovy:000> 
groovy:000> value = 'some value'
===> some value
groovy:000> 
groovy:000> map = [(nodeRootName): ("${value.toString()}")]
===> [some root name:some value]
groovy:000> 
groovy:000> 
groovy:000> map = [(nodeRootName): "\"${value}\""]
===> [some root name:"some value"]
0 голосов
/ 26 мая 2020

Не совсем понятно, что вы делаете, но похоже, что ваш вопрос, по сути, просто «Как я могу поставить кавычки в строковое значение».

Если это так, вы можете избежать их (так же, как Java):

String value = "Hello \"world\"."

Или вы можете заключить строку в тройные кавычки:

String value = """Hello "world"."""

Тем не менее, ничто из этого, похоже, не связано с картой или JSON синтаксический анализ, так что, возможно, вы спрашиваете совсем другое. Если это так, поясните, пожалуйста.

...