78

I would like to know, whats the right structure for a list of objects in JSON.

We are using JAXB to convert the POJO's to JSON.

Here is the choices, Please direct me what is right.

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

or

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

If the first structure is right, what is the JAXB annotation I should use to get the structure right.

3 Answers3

97

The second is almost correct:

{
    "foos" : [{
        "prop1":"value1",
        "prop2":"value2"
    }, {
        "prop1":"value3", 
        "prop2":"value4"
    }]
}
Ninjakannon
  • 3,551
  • 6
  • 50
  • 70
Justin Niessner
  • 236,029
  • 38
  • 403
  • 530
44

The first example from your question,

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

is in invalid syntax. You cannot have object properties inside a plain array.

The second example from your question,

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

is right although it is not strict JSON. It's a relaxed form of JSON wherein quotes in string keys are omitted.

Following is the correct one when you want to obey strict JSON:

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

This tutorial by Patrick Hunlock, may help to learn about JSON and this site may help to validate JSON.

BalusC
  • 1,040,783
  • 362
  • 3,548
  • 3,513
27

As others mentioned, Justin's answer was close, but not quite right. I tested this using Visual Studio's "Paste JSON as C# Classes"

{
    "foos" : [
        {
            "prop1":"value1",
            "prop2":"value2"
        },
        {
            "prop1":"value3", 
            "prop2":"value4"
        }
    ]
}
Timothy Kanski
  • 1,821
  • 13
  • 19