0
votes

Comment remplacer la valeur du paramètre dans un fichier JSON à l'aide de Groovy

Y a-t-il un moyen simple de remplacer la version de " 1.0.2 " à " 2.6.5 " dans un fichier JSON " déploy.json < / Strong> "Utilisation de scripts groovy et le contenu du fichier a été fourni ci-dessous. xxx

J'ai essayé ci-dessous, mais avoir une erreur; xxx

problème: Seule la première version Conf est remplacée par exemple. { "Version": "2.6.5", "Conf": "Réplique" }, { "Version": "1.0.2", "Conf": "HP" }, { "Version": "1.0.2", "Conf": "arrêt" }, { "Version": "1.0.2", "Conf": "Spark" }


1 commentaires

3 Réponses :


1
votes

Utilisation JQ : xxx

ou awk, si vous devez: xxx

Certaines sorties: < / p> xxx


0 commentaires

0
votes

J'aime suggérer groovy code> pour le faire.

édité: strong> Voir la ligne // modifiée p> p>

import groovy.json.JsonBuilder
import groovy.json.JsonSlurper

def content = """
{
  "app": "Beach",
  "Process": "steam",
  "versions": [
        {
            "version": "1.0.2",
            "conf": "replian"
        },
        {
            "version": "1.0.2",
            "conf": "hp"
        },
        {
            "version": "1.0.2",
            "conf": "shutoff"
        },
        {
            "version": "1.0.2",
            "conf": "spark"
        }
            ]
}"""

def slurped = new JsonSlurper().parseText(content)
def builder = new JsonBuilder(slurped) 
builder.content.versions.find{it.version}.version = "2.6.5" // Edited Line
println(builder.toPrettyString())

// Updated Line
new File ("out.json").text = builder.toPrettyString()


6 commentaires

groovy.json.jsonception: attendre un "," ou un "]", mais a obtenu le caractère actuel de ":" avec une valeur INT de 58 sur l'index de la matrice de 16, la lecture du personnage actuel est ":" avec une valeur INT de 58 Attendre A ',' ou A ']', mais obtenu le caractère actuel de ':' avec une valeur INT de 58 sur l'indice de réseau de 16 numéro de ligne 67 Numéro d'indice 1524 "Version": "0.0.0", .. ................ ^ à groovy.json.internal.jsonparserchaararray.complain (Jsonparser Chararray.java:153)


@itgeek Oops ...! Mon erreur. Maintenant j'ai mis à jour mon code


Merci Bhanu, la valeur remplaçait la première configuration "RÉPLIAN" et n'a pas remplacé la version dans une autre configuration


@itgeek heureux ça a aidé


Je veux les écrire dans un fichier JSON après avoir substitué les valeurs. Puis-je utiliser ci-dessous pour écrire les données analysées dans un fichier JSON et imprimer le contenu du fichier. Fichier de file: 'OutputFile.json', Texte: Content printLN ('Impression du fichier JSON de sortie:' + de sortiefile.json)


@itgeek Si vous voulez en sortie, vous pouvez ajouter une nouvelle ligne, car j'ai mis à jour la dernière ligne de ma réponse.



0
votes

Si jamais vous êtes intéressé par une solution avec SED: SED 'S / "Version": "1 \ .0 \ .2" / "Version": "2.6.5" / Déployer.json < / code>


0 commentaires