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;
    }
@ 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 ; }
-------------------------------------------------------------
-------------------------------------------------------------