Maison > Article > développement back-end > Comment écrire un démarécheur personnalisé pour 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.
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) }
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?
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!