我正在编写一个Groovy脚本(Groovy 2.4.6)
JsonBuilder对象包含:
"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"
],
我希望GestionAffaire的每一行看起来像" SAM_GestionAffaire_ModifierSaisine" :" 1"
所以我用解析过的Json尝试了以下内容: jsonString.replaceAll(" \","," \":\" 1 \",")
但是String中的任何内容都没有改变,我也尝试了基本的表达式,但字符串保持不变。
你有什么想法/替代方案吗?
此致
托马斯
答案 0 :(得分:0)
假设你有一个Map中的数据(我假设你在地图中有它将它传递给_JsonBuilder对象?)
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"
]]
然后你可以改变地图:
map.GestionAffaire = map.GestionAffaire.collectEntries { [it, '1'] }
这样就像你想要的那样:
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'
]]
答案 1 :(得分:0)
你是如何调用它的?
此调用的结果是一个字符串,它不会修改原始
def newString = jsonString.replaceAll( ... )