Post ein JSON-Array in den Frühling Starten RestController

Ich bin Entsendung, so etwas wie dieses:

{
  "stuff": [
    {
      "thingId": 1,
      "thingNumber": "abc",
      "countryCode": "ZA"
    },
    {
      "thingId": 2,
      "thingNumber": "xyz",
      "countryCode": "US"
    }
  ]
}

Kann ich abrufen der Daten in der Steuerung wie folgt:

@RequestMapping(value = "/stuffs", method = RequestMethod.POST)
public String invoices(@RequestBody Map<String, List <Stuff>> stuffs) {

    return "Hooray";
}

Was ich wirklich gerne tun, ist nur eine Liste von Sachen, die in den controller; ie:

@RequestMapping(value = "/stuffs", method = RequestMethod.POST)
public String invoices(@RequestBody List <Stuff> stuffs) {

    return "I'm sad that this won't work.";
}

Jedoch, Jackson nicht so aus. Die Fehler, die ich erhalte ist folgende:

Konnte nicht gelesen werden JSON-Dokument: Kann nicht deserialisiert Instanz
java.util.ArrayList aus START_OBJECT token\n [Quelle:
java.io.PushbackInputStream@2a30a2f4; Zeile: 1, Spalte: 1]; geschachtelte
Ausnahme ist com.fasterxml.jackson.databind-Methode.JsonMappingException: Kann
nicht Deserialisieren Instanz von java.util.ArrayList aus START_OBJECT
token\n [Quelle: java.io.PushbackInputStream@2a30a2f4; line: 1,
Spalte: 1]

Kann ich nicht senden, in der folgende (da es kein gültiges JSON):

    {
      [
        {
          "thingId": 1,
          "thingNumber": "abc",
          "countryCode": "ZA"
        },
        {
          "thingId": 2,
          "thingNumber": "xyz",
          "countryCode": "US"
        }
      ]
    }

Ich bin sicher, dass dies etwas zu einfach, aber ich kann nicht destillieren eine Antwort von meinem StackOverflow und Google-Suche.

Jede mögliche Hilfe würde geschätzt! 🙂

InformationsquelleAutor orrymr | 2017-05-16
Schreibe einen Kommentar