I'm writting a Groovy script (Groovy 2.4.6)
A JsonBuilder object contains :
"GestionAffaire": [
"SAM_GestionAffaire_ModifierSaisine",
"SAM_GestionAffaire_DetaillerProjetCollectif",
"SAM_GestionAffaire_ControlerReservationPossible",
"SAM_GestionAffaire_RechercherSaisine",
"SAM_GestionAffaire_CloturerAffaireSurMesure",
"SAM_GestionAffaire_AjouterNoteProjetCollectif",
"SAM_GestionAffaire_ListerNoteProjetCollectif",
"SAM_GestionAffaire_ConsulterSuiviCommAvv",
"SAM_GestionAffaire_RechercherProjetCollectif",
"Enrichment_PUB_PUB_CREASM_1",
"SAM_GestionAffaire_EnregistrerProjetCollectifValide",
"SAM_GestionAffaire_EnregistrerProjetCollectif",
"SAM_GestionAffaire_SupprimerProjetCollectif",
"SoapHttpDelivery_SUB_EPAVVI_1",
"SAM_GestionAffaire_ReserverEntreprise",
"SAM_GestionAffaire_AnnulerContractualisationProjetCollectif",
"Enrichment_PUB_PUB_MAJPSM_3",
"Enrichment_PUB_PUB_MAJPSM_2",
"SAM_GestionAffaire_EnregistrerProjetCollectifEtude",
"Enrichment_PUB_PUB_CPSM_2",
"SAM_GestionAffaire_ContractualiserProjetCollectif"
],
I want each line of GestionAffaire to look like "SAM_GestionAffaire_ModifierSaisine" : "1"
So I tried the following with the parsed Json: jsonString.replaceAll("\\"," , "\\": \\"1\\"," )
But nothing in the String is changing, I also tried basic expressions but the String remains unchanged.
Do you have any idea / alternative ?
Regards
Thomas
SO assuming you have the data in a Map (I assume you had it in a map to pass it to a _JsonBuilder object?)
def map = [GestionAffaire:[
"SAM_GestionAffaire_ModifierSaisine",
"SAM_GestionAffaire_DetaillerProjetCollectif",
"SAM_GestionAffaire_ControlerReservationPossible",
"SAM_GestionAffaire_RechercherSaisine",
"SAM_GestionAffaire_CloturerAffaireSurMesure",
"SAM_GestionAffaire_AjouterNoteProjetCollectif",
"SAM_GestionAffaire_ListerNoteProjetCollectif",
"SAM_GestionAffaire_ConsulterSuiviCommAvv",
"SAM_GestionAffaire_RechercherProjetCollectif",
"Enrichment_PUB_PUB_CREASM_1",
"SAM_GestionAffaire_EnregistrerProjetCollectifValide",
"SAM_GestionAffaire_EnregistrerProjetCollectif",
"SAM_GestionAffaire_SupprimerProjetCollectif",
"SoapHttpDelivery_SUB_EPAVVI_1",
"SAM_GestionAffaire_ReserverEntreprise",
"SAM_GestionAffaire_AnnulerContractualisationProjetCollectif",
"Enrichment_PUB_PUB_MAJPSM_3",
"Enrichment_PUB_PUB_MAJPSM_2",
"SAM_GestionAffaire_EnregistrerProjetCollectifEtude",
"Enrichment_PUB_PUB_CPSM_2",
"SAM_GestionAffaire_ContractualiserProjetCollectif"
]]
Then you can just change the map:
map.GestionAffaire = map.GestionAffaire.collectEntries { [it, '1'] }
so that it is like you want:
assert map == [GestionAffaire:[
"SAM_GestionAffaire_ModifierSaisine": '1',
"SAM_GestionAffaire_DetaillerProjetCollectif": '1',
"SAM_GestionAffaire_ControlerReservationPossible": '1',
"SAM_GestionAffaire_RechercherSaisine": '1',
"SAM_GestionAffaire_CloturerAffaireSurMesure": '1',
"SAM_GestionAffaire_AjouterNoteProjetCollectif": '1',
"SAM_GestionAffaire_ListerNoteProjetCollectif": '1',
"SAM_GestionAffaire_ConsulterSuiviCommAvv": '1',
"SAM_GestionAffaire_RechercherProjetCollectif": '1',
"Enrichment_PUB_PUB_CREASM_1": '1',
"SAM_GestionAffaire_EnregistrerProjetCollectifValide": '1',
"SAM_GestionAffaire_EnregistrerProjetCollectif": '1',
"SAM_GestionAffaire_SupprimerProjetCollectif": '1',
"SoapHttpDelivery_SUB_EPAVVI_1": '1',
"SAM_GestionAffaire_ReserverEntreprise": '1',
"SAM_GestionAffaire_AnnulerContractualisationProjetCollectif": '1',
"Enrichment_PUB_PUB_MAJPSM_3": '1',
"Enrichment_PUB_PUB_MAJPSM_2": '1',
"SAM_GestionAffaire_EnregistrerProjetCollectifEtude": '1',
"Enrichment_PUB_PUB_CPSM_2": '1',
"SAM_GestionAffaire_ContractualiserProjetCollectif": '1'
]]
How are you invoking this?
The result of this call IS a string, it will not modify the original
def newString = jsonString.replaceAll( ... )
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.