I'm making a callout to an external API via Apex and processing the response as such:

    HTTPResponse res = http.send(request);
    Map<String, Object> Response = (Map<String, Object>)System.JSON.deserializeUntyped(res.getBody());

This compiles fine, but I get the following error at runtime:

Invalid conversion from runtime type List to Map

The response body is in the following format (list size is always 1):

        "licenceID": "543C",
        "status": "Current",
        "expiryDate": "17/11/2018",

So I understand that it's detecting this as a list rather than a map but I'm not sure what the best way is to process this List. Essentially, I'd like to be able to get the value for licenceID, using something like this:

String licenceID = String.valueOf(Response.get('licenceId'));
  • try List<Object> Response = (List<Object>)System.JSON.deserializeUntyped(res.getBody());
    – Raul
    Commented Sep 27, 2017 at 11:44

1 Answer 1


You can get licenseId value with following code.

 List<Object> Response = (List<Object>)System.JSON.deserializeUntyped(res.getBody());
 Map<String,Object> data = (Map<String,Object>)Response[0];

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .