Maison >développement back-end >Golang >Golang plusieurs json

Golang plusieurs json

PHPz
PHPzavant
2024-02-09 10:42:09919parcourir

Golang 多个 json

l'éditeur php Banana vous présentera comment traiter plusieurs JSON dans Golang. Dans Golang, nous devons souvent gérer plusieurs objets JSON. Par exemple, les données obtenues à partir de l'interface API peuvent être un tableau JSON. Pour faciliter la gestion de cette situation, nous pouvons utiliser le package JSON de Golang pour analyser et traiter plusieurs objets JSON. À l'aide du package JSON, nous pouvons analyser les données JSON en structures dans Golang, puis exploiter et traiter les structures. De cette façon, nous pouvons facilement gérer plusieurs objets JSON. Bien entendu, nous pouvons également utiliser certaines bibliothèques tierces, telles que GJSON, pour traiter plusieurs objets JSON de manière plus flexible et plus efficace. En général, Golang propose diverses façons de traiter plusieurs objets JSON, et les développeurs peuvent choisir la méthode appropriée en fonction de leurs propres besoins.

Contenu de la question

J'ai un json envoyé au client, il a 2 variantes, toute la différence est un nom de champ push/pull, comment puis-je faire cela sans dupliquer les balises struct pour une

"message": "Project updated successfully.",
        "data": {
            "push": {
                "projects": [
                    {
                        "name": "test",
                        "summary": "nn",
                    
                    }
                ],
                "events": []
            }
        }
    }
    "message": "Project updated successfully.",
        "data": {
            "pull": {
                "projects": [
                    {
                        "name": "test",
                        "summary": "nn",
                    
                    }
                ],
                "events": []
            }
        }
    }

`

Je pense créer une interface de champ de date et remplacer une structure différente

Solution de contournement

Définissez simplement un seul type avec des champs Push et Pull :

type A struct {
    Message string `json:"message"`
    Data    struct {
        Push *B `json:"push,omitempty"`
        Pull *B `json:"pull,omitempty"`
    } `json:"data"`
}

type B struct {
    Projects []struct {
        Name    string `json:"name"`
        Summary string `json:"summary"`
    } `json:"projects"`
    Events []interface{} `json:"events"`
}

Vérifiez zéro après le décodage pour déterminer quel type d'événement cela représente.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer