14

How to read below JSON using Jackson ObjectMapper? I have developed code but getting below error.

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token
 at [Source: (File); line: 7, column: 19] (through reference chain: com.example.demo.resources.Orgnization["secondaryIds"])

JSON

{
  "id": "100000",
  "name": "ABC",
  "keyAccount": false,
  "phone": "1111111",
  "phoneExtn": "11",
  "secondaryIds": {
    "ROP": [
      "700010015",
      "454546767",
      "747485968",
      "343434343"
    ],
    "AHID": [
      "01122006",
      "03112001"
    ]
  }
}
2
  • 1
    Please show a minimal reproducible example with your Java entity and deserialization call to ObjectMapper. Commented Oct 24, 2019 at 15:26
  • May be you use: mapper.readValue(is, List.class) instead of mapper.readValue(is, Map.class) Commented Feb 26, 2023 at 18:11

1 Answer 1

27

You need to enable ACCEPT_SINGLE_VALUE_AS_ARRAY feature. Probably in POJO you have a List but when there is only one element in a List JSON payload is generated without array brackets.

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.util.List;

public class JsonApp {

    public static void main(String[] args) throws Exception {
        File jsonFile = new File("./src/main/resources/test.json");

        ObjectMapper mapper = new ObjectMapper();
        mapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);

        Orgnization root = mapper.readValue(jsonFile, Orgnization.class);
        System.out.println(root);
    }
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.