En aquest tema, aprendrem com treballar amb XML i JSON en Groovy. Aquests formats de dades són àmpliament utilitzats per a l'intercanvi d'informació entre aplicacions. Groovy proporciona eines potents i senzilles per manipular aquests formats.

Continguts

Introducció a XML i JSON

XML (eXtensible Markup Language) i JSON (JavaScript Object Notation) són formats de dades utilitzats per a l'intercanvi d'informació. XML és més verbós i estructurat, mentre que JSON és més lleuger i fàcil de llegir per als humans.

Treballant amb XML

Parsejar XML

Groovy facilita la lectura i manipulació de documents XML mitjançant la classe XmlSlurper.

def xmlContent = '''
<person>
    <name>John Doe</name>
    <age>30</age>
    <address>
        <street>Main Street</street>
        <city>Springfield</city>
    </address>
</person>
'''

def xml = new XmlSlurper().parseText(xmlContent)

println "Name: ${xml.name.text()}"
println "Age: ${xml.age.text()}"
println "City: ${xml.address.city.text()}"

Explicació:

  • XmlSlurper parseja el contingut XML.
  • parseText llegeix el contingut XML des d'una cadena.
  • text() extreu el text dels elements XML.

Crear XML

Groovy també permet crear documents XML fàcilment amb la classe MarkupBuilder.

import groovy.xml.MarkupBuilder

def writer = new StringWriter()
def xml = new MarkupBuilder(writer)

xml.person {
    name 'John Doe'
    age 30
    address {
        street 'Main Street'
        city 'Springfield'
    }
}

println writer.toString()

Explicació:

  • MarkupBuilder facilita la creació d'estructures XML.
  • Utilitzem closures per definir els elements i el seu contingut.

Treballant amb JSON

Parsejar JSON

Groovy proporciona la classe JsonSlurper per parsejar JSON.

import groovy.json.JsonSlurper

def jsonContent = '''
{
    "name": "John Doe",
    "age": 30,
    "address": {
        "street": "Main Street",
        "city": "Springfield"
    }
}
'''

def json = new JsonSlurper().parseText(jsonContent)

println "Name: ${json.name}"
println "Age: ${json.age}"
println "City: ${json.address.city}"

Explicació:

  • JsonSlurper parseja el contingut JSON.
  • parseText llegeix el contingut JSON des d'una cadena.

Crear JSON

Per crear JSON, utilitzem la classe JsonBuilder.

import groovy.json.JsonBuilder

def json = new JsonBuilder()

json.person {
    name 'John Doe'
    age 30
    address {
        street 'Main Street'
        city 'Springfield'
    }
}

println json.toPrettyString()

Explicació:

  • JsonBuilder facilita la creació d'estructures JSON.
  • Utilitzem closures per definir els elements i el seu contingut.

Exercicis Pràctics

Exercici 1: Parsejar XML

Parseja el següent XML i imprimeix el nom i l'edat de la persona.

<person>
    <name>Jane Doe</name>
    <age>25</age>
</person>

Solució:

def xmlContent = '''
<person>
    <name>Jane Doe</name>
    <age>25</age>
</person>
'''

def xml = new XmlSlurper().parseText(xmlContent)

println "Name: ${xml.name.text()}"
println "Age: ${xml.age.text()}"

Exercici 2: Crear JSON

Crea un JSON amb la següent estructura i imprimeix-lo:

{
    "product": {
        "name": "Laptop",
        "price": 999.99,
        "specs": {
            "cpu": "Intel i7",
            "ram": "16GB"
        }
    }
}

Solució:

import groovy.json.JsonBuilder

def json = new JsonBuilder()

json.product {
    name 'Laptop'
    price 999.99
    specs {
        cpu 'Intel i7'
        ram '16GB'
    }
}

println json.toPrettyString()

Conclusió

En aquesta secció, hem après com treballar amb XML i JSON en Groovy. Hem vist com parsejar i crear documents XML i JSON utilitzant les classes XmlSlurper, MarkupBuilder, JsonSlurper i JsonBuilder. Aquests coneixements són essencials per a l'intercanvi d'informació entre aplicacions i per a la manipulació de dades en formats estàndard.

© Copyright 2024. Tots els drets reservats