src/main/java/com/amazonaws/hal/client/HalJsonLinksUnmarshaller.java
@Override
    public Map<String, HalLink> unmarshall(JsonUnmarshallerContext context)
            throws Exception {
        Map<String, HalLink> links = new LinkedHashMap<>();
        JsonToken token = context.getCurrentToken();

        while (token != null && token != JsonToken.END_OBJECT) {
            if (token == JsonToken.FIELD_NAME) {
                if (context.testExpression("curie")) {
                    context.nextToken();
                    HalJsonCurieUnmarshaller.getInstance().unmarshall(context);
                } else {
                    String relation = context.readText();
                    token = context.nextToken();

                    if (token == JsonToken.START_ARRAY) {
                        List<HalLink> halLinks = new HalJsonArrayUnmarshaller<>(HalJsonLinkUnmarshaller.getInstance()).unmarshall(context);

                        int i = 0;
                        for (HalLink halLink : halLinks) {
                            links.put(relation + "_" + i++, halLink);
                        }
                    } else {
                        links.put(relation, HalJsonLinkUnmarshaller.getInstance().unmarshall(context));
                    }
                }
            }

            token = context.nextToken();
        }

        return links;
    }
@Override
    public Map<String, HalLink> unmarshall(JsonUnmarshallerContext context)
            throws Exception {
        Map<String, HalLink> links = new LinkedHashMap<>();
        JsonToken token = context.getCurrentToken();

        while (token != null && token != JsonToken.END_OBJECT) {
            if (token == JsonToken.FIELD_NAME) {
                if (context.testExpression("curie")) {
                    context.nextToken();
                    HalJsonCurieUnmarshaller.getInstance().unmarshall(context);
                } else {
                    String relation = context.readText();
                    token = context.nextToken();

                    if (token == JsonToken.START_ARRAY) {
                        List<HalLink> halLinks = new HalJsonArrayUnmarshaller<>(HalJsonLinkUnmarshaller.getInstance()).unmarshall(context);

                        int i = 0;
                        for (HalLink halLink : halLinks) {
                            links.put(relation + "_" + i++, halLink);
                        }
                    } else {
                        links.put(relation, HalJsonLinkUnmarshaller.getInstance().unmarshall(context));
                    }
                }
            }

            token = context.nextToken();
        }

        return links;
    }
-------------------------------------------------------------