69 votes

Structure JSON pour une liste d'objets

Je voudrais savoir quelle est la bonne structure pour une liste d'objets en JSON.

Nous utilisons JAXB pour convertir les POJO en JSON.

Voici les choix, s'il vous plaît dirigez-moi ce qui est juste.

foos: [
             foo:{..},
             foo:{..}
      ]

ou

   foos : [
           {...},
           {...}
          ]

Si la première structure est correcte, quelle est l'annotation JAXB que je dois utiliser pour obtenir la structure correcte.

2 votes

"en utilisant JAXB pour convertir les POJO en JSON".... comment ?

83voto

Justin Niessner Points 144953

Le second est presque correct :

{
    "foos" : [{
        "prop1":"value1",
        "prop2":"value2"
    }, {
        "prop1":"value3", 
        "prop2":"value4"
    }]
}

0 votes

Ceci n'est pas validé par jsonlint :( Je suis tenté de penser que jsonlint a tort :-||

2 votes

@RamanpreetSingh - Si vous validez via jsonlint alors vous devrez également ajouter des guillemets autour de foos au niveau supérieur.

0 votes

J'ai ajouté des guillemets et des accolades au niveau supérieur et cela fonctionne. Merci !

40voto

BalusC Points 498232

Le premier est une syntaxe invalide. Vous ne pouvez pas avoir de propriétés d'objet dans un tableau simple. La seconde est correcte bien qu'elle ne soit pas strict JSON. C'est un détendu forme de JSON dans laquelle les guillemets dans les clés de chaîne sont omis.

Ce tutoriel de Patrick Hunlock peut être utile pour apprendre à connaître JSON et ce site peut aider à valider JSON.

24voto

Timothy Kanski Points 1365

Comme d'autres l'ont mentionné, la réponse de Justin était proche, mais pas tout à fait juste. J'ai testé cela en utilisant la fonction "Paste JSON as C# Classes" de Visual Studio.

{
    "foos" : [
        {
            "prop1":"value1",
            "prop2":"value2"
        },
        {
            "prop1":"value3", 
            "prop2":"value4"
        }
    ]
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X