Sobes.tech
Junior — Middle

Heeft u ervaring met het datatype jsonb in databases?

sobes.tech AI

Antwoord van AI

Ja, de jsonb dataype in PostgreSQL is een binaire representatie van JSON die het mogelijk maakt om JSON-gegevens efficiënt op te slaan en te indexeren.

In Go wordt voor werken met jsonb meestal het database/sql pakket gebruikt samen met de driver voor PostgreSQL (bijvoorbeeld lib/pq of pgx). Om gegevens te verzenden en te ontvangen in het jsonb-veld, worden types zoals []byte of string gebruikt, evenals structuren die worden geserialiseerd/deserialiseerd met het encoding/json pakket.

Voorbeeld van het opslaan van een structuur in een jsonb-veld:

import (
    "database/sql"
    "encoding/json"
    _ "github.com/lib/pq"
)

type Data struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func insertJSONB(db *sql.DB, d Data) error {
    jsonData, err := json.Marshal(d)
    if err != nil {
        return err
    }
    _, err = db.Exec("INSERT INTO table_name (jsonb_column) VALUES ($1)", jsonData)
    return err
}

Zo, werken met jsonb omvat het serialiseren van structuren naar JSON, opslaan in een jsonb-veld en het uitvoeren van query's en deserialisatie daarna.