Java:
Työskentely JSON:n kanssa

Kuinka:

Kääritään hihat ja ryhdytään koodaamaan JSONin kanssa Javassa.

Ensimmäiseksi, tarvitset JSON-käsittelykirjaston kuten Jackson tai Google Gson. Tässä käytämme Jacksonia, joten lisää tämä riippuvuus pom.xml-tiedostoosi:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.1</version>
</dependency>

Nyt, sarjoitetaan (kirjoitetaan) yksinkertainen Java-olio JSONiksi:

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonEsimerkki {
    public static void main(String[] args) {
        try {
            ObjectMapper mapper = new ObjectMapper();
            Henkilo henkilo = new Henkilo("Alex", 30);
            String json = mapper.writeValueAsString(henkilo);
            System.out.println(json);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Henkilo {
    public String nimi;
    public int ika;

    public Henkilo(String nimi, int ika) {
        this.nimi = nimi;
        this.ika = ika;
    }
}

Tulosteen pitäisi olla:

{"nimi":"Alex","ika":30}

Nyt, deserialisoidaan (luetaan) JSON takaisin Java-olioksi:

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonEsimerkki {
    public static void main(String[] args) {
        String json = "{\"nimi\":\"Alex\",\"ika\":30}";
        try {
            ObjectMapper mapper = new ObjectMapper();
            Henkilo henkilo = mapper.readValue(json, Henkilo.class);
            System.out.println(henkilo.nimi + " on " + henkilo.ika + " vuotta vanha.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Tulosteena on:

Alex on 30 vuotta vanha.

Syväluotaus

JSONin yksinkertaisuus ja tehokkuus ovat tehneet siitä de facto -standardin datan vaihtoon webissä, syrjäyttäen XML:n valtaistuimeltaan. Esitelty 2000-luvun alussa, JSON on johdettu JavaScriptistä, mutta nyt se on tuettu useimmissa kielissä.

Vaihtoehtoja JSONille ovat mm. XML, joka on verbosimpi, ja binaarimuodot kuten Protocol Buffers tai MessagePack, jotka eivät ole ihmisen luettavia mutta ovat tehokkaampia koossa ja nopeudessa. Kullakin on käyttötapauksensa; valinta riippuu erityisistä datatarpeistasi ja kontekstistasi.

Javassa, Jacksonin ja Gsonin lisäksi, meillä on JsonB ja org.json muita kirjastoja JSONin käsittelyyn. Jackson tarjoaa stream-pohjaisen prosessoinnin ja on tunnettu nopeudestaan, kun taas Gsonia juhlitaan sen helppokäyttöisyydestä. JsonB on osa Jakarta EE:tä, tarjoten standardoidumman lähestymistavan.

Kun toteutat JSONia, muista käsitellä poikkeuksesi asianmukaisesti - koodisi tulisi olla vankka huonoja syötteitä vastaan. Harkitse myös automaattisen datan sitomisen turvallisuusimpikaatioita – varmista aina syötteesi!

Katso Myös