src/main/java/com/amazonaws/hal/client/HalJsonResourceUnmarshaller.java
@Override
    public HalResource unmarshall(JsonUnmarshallerContext context)
            throws Exception {
        HalResource halResource = new HalResource();
        JsonToken token = context.getCurrentToken();

        if (token == null) {
            token = context.nextToken();
        }

        while (token != null && token != JsonToken.END_OBJECT) {
            if (token == JsonToken.FIELD_NAME) {
                if (context.testExpression("_links")) {
                    context.nextToken();
                    halResource.setLinks(HalJsonLinksUnmarshaller.getInstance().unmarshall(context));
                } else if (context.testExpression("_embedded")) {
                    context.nextToken();
                    halResource.setEmbedded(HalJsonEmbeddedUnmarshaller.getInstance().unmarshall(context));
                } else {
                    String property = context.readText();

                    token = context.nextToken();

                    if (token == JsonToken.START_OBJECT) {
                        context.nextToken();
                        halResource.addProperty(property, HalJsonMapUnmarshaller.getInstance().unmarshall(context));
                    } else if (token == JsonToken.START_ARRAY) {
                        context.nextToken();
                        halResource.addProperty(property, HalJsonListUnmarshaller.getInstance().unmarshall(context));
                    } else {
                        halResource.addProperty(property, JsonUnmarshallerUtil.getObjectForToken(token, context));
                    }
                }
            }

            token = context.nextToken();
        }

        return halResource;
    }
@Override
    public HalResource unmarshall(JsonUnmarshallerContext context)
            throws Exception {
        HalResource halResource = new HalResource();
        JsonToken token = context.getCurrentToken();

        if (token == null) {
            token = context.nextToken();
        }

        while (token != null && token != JsonToken.END_OBJECT) {
            if (token == JsonToken.FIELD_NAME) {
                if (context.testExpression("_links")) {
                    context.nextToken();
                    halResource.setLinks(HalJsonLinksUnmarshaller.getInstance().unmarshall(context));
                } else if (context.testExpression("_embedded")) {
                    context.nextToken();
                    halResource.setEmbedded(HalJsonEmbeddedUnmarshaller.getInstance().unmarshall(context));
                } else {
                    String property = context.readText();

                    token = context.nextToken();

                    if (token == JsonToken.START_OBJECT) {
                        context.nextToken();
                        halResource.addProperty(property, HalJsonMapUnmarshaller.getInstance().unmarshall(context));
                    } else if (token == JsonToken.START_ARRAY) {
                        context.nextToken();
                        halResource.addProperty(property, HalJsonListUnmarshaller.getInstance().unmarshall(context));
                    } else {
                        halResource.addProperty(property, JsonUnmarshallerUtil.getObjectForToken(token, context));
                    }
                }
            }

            token = context.nextToken();
        }

        return halResource;
    }
@ Override public HalResource unmarshall ( JsonUnmarshallerContext context ) throws Exception { HalResource halResource = new HalResource ( ) ; JsonToken token = context . getCurrentToken ( ) ; if ( token == null ) { token = context . nextToken ( ) ; } while ( token != null && token != JsonToken . END_OBJECT ) { if ( token == JsonToken . FIELD_NAME ) { if ( context . testExpression ( "_links" ) ) { context . nextToken ( ) ; halResource . setLinks ( HalJsonLinksUnmarshaller . getInstance ( ) . unmarshall ( context ) ) ; } else if ( context . testExpression ( "_embedded" ) ) { context . nextToken ( ) ; halResource . setEmbedded ( HalJsonEmbeddedUnmarshaller . getInstance ( ) . unmarshall ( context ) ) ; } else { String property = context . readText ( ) ; token = context . nextToken ( ) ; if ( token == JsonToken . START_OBJECT ) { context . nextToken ( ) ; halResource . addProperty ( property , HalJsonMapUnmarshaller . getInstance ( ) . unmarshall ( context ) ) ; } else if ( token == JsonToken . START_ARRAY ) { context . nextToken ( ) ; halResource . addProperty ( property , HalJsonListUnmarshaller . getInstance ( ) . unmarshall ( context ) ) ; } else { halResource . addProperty ( property , JsonUnmarshallerUtil . getObjectForToken ( token , context ) ) ; } } } token = context . nextToken ( ) ; } return halResource ; }
-------------------------------------------------------------
-------------------------------------------------------------