public Object extractObject(ObjectToJsonConverter pConverter, Object pValue,
                                Stack<String> pPathParts,boolean jsonify) throws AttributeNotFoundException {
        Map<Object,Object> map = (Map<Object,Object>) pValue;
        int length = pConverter.getCollectionLength(map.size());
        String pathParth = pPathParts.isEmpty() ? null : pPathParts.pop();
        if (pathParth != null) {
            return extractMapValueWithPath(pConverter, pValue, pPathParts, jsonify, map, pathParth);
        } else {
            return jsonify ? extractMapValues(pConverter, pPathParts, jsonify, map, length) : map;
        }
    }
public Object extractObject ( ObjectToJsonConverter pConverter , Object pValue , Stack < String > pPathParts , boolean jsonify ) throws AttributeNotFoundException { Map < Object , Object > map = ( Map < Object , Object > ) pValue ; int length = pConverter . getCollectionLength ( map . size ( ) ) ; String pathParth = pPathParts . isEmpty ( ) ? null : pPathParts . pop ( ) ; if ( pathParth != null ) { return extractMapValueWithPath ( pConverter , pValue , pPathParts , jsonify , map , pathParth ) ; } else { return jsonify ? extractMapValues ( pConverter , pPathParts , jsonify , map , length ) : map ; } }
Convert a Map to JSON (if <code>jsonify</code> is <code>true</code>). If a path is used, the
path is interpreted as a key into the map. The key in the path is a string and is compared agains
all keys in the map against their string representation.

@param pConverter the global converter in order to be able do dispatch for
serializing inner data types
@param pValue the value to convert which must be a {@link Map}
@param pPathParts extra argument stack which on top must be a key into the map
@param jsonify whether to convert to a JSON object/list or whether the plain object
should be returned. The later is required for writing an inner value
@return the extracted object
@throws AttributeNotFoundException