MismatchedInputException ☕ Java

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList` from Object value

Jackson found JSON whose shape doesn’t match the target Java type (object vs array, string vs number, missing constructor).

Seen on: Java

Meaning

Typical: the JSON is wrapped ({"data": [...]}) while you map to a List, a single value where a list is expected, or a class without a default constructor/creator.

Common causes

  • JSON wrapper object around the array
  • Single value instead of array
  • No default constructor (records/immutable classes without creators)
  • Empty body

⚡ Quick fix

  1. Map to a wrapper class or read the subtree
  2. Enable ACCEPT_SINGLE_VALUE_AS_ARRAY when appropriate
  3. Add a no-args constructor or @JsonCreator

Detailed fix by platform

Java

  1. java
    JsonNode root = mapper.readTree(json);
    List<Item> items = mapper.convertValue(root.get("data"), new TypeReference<>() {});

How to diagnose

  1. Shape — What does the JSON look like at that path?
  2. Type — What type are you mapping to?

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.