code: private Object getEmbeddedObject(JsonParser jsonParser) throws IOException {
          LOG.info("Start parsing an embedded object.");
          Map<String, Object> embeddedMap = new HashMap<>();
          while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
              String key = jsonParser.getText();
              jsonParser.nextToken();
              JsonToken token = jsonParser.getCurrentToken();
              if (token == JsonToken.START_ARRAY) {
                  Object embeddedArray = getCollectionValue(jsonParser);
                  embeddedMap.put(key, embeddedArray);
              } else if (token == JsonToken.START_OBJECT) {
                  Object embeddedObject = getEmbeddedObject(jsonParser);
                  embeddedMap.put(key, embeddedObject);
              } else {
                  if (token.equals(JsonToken.VALUE_NULL)) {
                      embeddedMap.put(key, null);
                  } else {
                      embeddedMap.put(key, jsonParser.getText());
                  }
              }
          }
          return embeddedMap;
      }
docs: Process an embedded object.
  
  @param jsonParser the parser
  @return map with embedded object key:values
  @throws IOException If unable to read input parser