src/main/java/com/amazonaws/hal/client/HalJsonListUnmarshaller.java
@Override
    public List<Object> unmarshall(JsonUnmarshallerContext context)
            throws Exception {
        List<Object> list = new ArrayList<>();
        JsonToken token = context.getCurrentToken();

        while (token != null && token != JsonToken.END_ARRAY) {
            if (token.isScalarValue()) {
                list.add(JsonUnmarshallerUtil.getObjectForToken(token, context));
            } else if (token == JsonToken.START_OBJECT) {
                context.nextToken();
                list.add(HalJsonMapUnmarshaller.getInstance().unmarshall(context));
            } else if (token == JsonToken.START_ARRAY) {
                context.nextToken();
                list.add(HalJsonListUnmarshaller.getInstance().unmarshall(context));
            }

            token = context.nextToken();
        }

        return list;
    }
@Override
    public List<Object> unmarshall(JsonUnmarshallerContext context)
            throws Exception {
        List<Object> list = new ArrayList<>();
        JsonToken token = context.getCurrentToken();

        while (token != null && token != JsonToken.END_ARRAY) {
            if (token.isScalarValue()) {
                list.add(JsonUnmarshallerUtil.getObjectForToken(token, context));
            } else if (token == JsonToken.START_OBJECT) {
                context.nextToken();
                list.add(HalJsonMapUnmarshaller.getInstance().unmarshall(context));
            } else if (token == JsonToken.START_ARRAY) {
                context.nextToken();
                list.add(HalJsonListUnmarshaller.getInstance().unmarshall(context));
            }

            token = context.nextToken();
        }

        return list;
    }
-------------------------------------------------------------