Maison > développement back-end > Golang > le corps du texte

Comment écrire un démarécheur personnalisé pour AWS ION ?

WBOY
Libérer: 2024-02-09 11:39:17
avant
1170 Les gens l'ont consulté

如何为 AWS ION 编写自定义解组器?

L'éditeur php Xigua vous présentera comment écrire un analyseur personnalisé pour AWS ION. AWS ION est un format de données open source permettant de traiter des données à grande échelle avec des capacités de stockage et de transfert efficaces. Les analyseurs personnalisés sont développés pour répondre à des besoins spécifiques et sont capables de convertir les données ION dans des formats spécifiques. L'écriture d'un analyseur personnalisé nécessite de comprendre la structure des données et les règles d'analyse de ION, ainsi que de maîtriser les techniques de programmation associées. Cet article présentera en détail comment écrire un analyseur personnalisé et fournira des cas pratiques à titre de référence. Que vous soyez débutant ou développeur expérimenté, vous pouvez obtenir de l'aide et des conseils.

Contenu de la question

J'utilise Amazon ion pour rassembler et démarcher les données reçues de divers services AWS.

J'ai besoin d'écrire une fonction de démarshalling personnalisée et j'ai trouvé un exemple de la façon de l'implémenter dans la documentation officielle d'Amazon Ion, voir ici

En utilisant l'exemple ci-dessus, j'ai écrit le code suivant :

package main

import (
    "bytes"
    "fmt"

    "github.com/amzn/ion-go/ion"
)

func main() {
    UnmarshalCustomMarshaler()
}

type unmarshalMe struct {
    Name   string
    custom bool
}

func (u *unmarshalMe) UnmarshalIon(r ion.Reader) error {
    fmt.Print("UnmarshalIon called")
    u.custom = true
    return nil
}

func UnmarshalCustomMarshaler() {
    ionBinary, err := ion.MarshalBinary(unmarshalMe{
        Name: "John Doe",
    })
    if err != nil {
        fmt.Println("Error marshalling ion binary: ", err)
        panic(err)
    }

    dec := ion.NewReader(bytes.NewReader(ionBinary))
    var decodedResult unmarshalMe

    ion.UnmarshalFrom(dec, &decodedResult)
    fmt.Println("Decoded result: ", decodedResult)
}
Copier après la connexion

Problème : Le code ci-dessus ne fonctionne pas comme prévu. La fonction unmarshalion n'est pas appelée, mais selon la documentation, elle devrait l'être. Qu'ai-je fait de mal?

Solution de contournement

Vous utilisez peut-être la version 1.1.3, qui n'inclut pas cette fonctionnalité par défaut.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal