Extract Field: Set JsonNode as expected input
diff --git a/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java b/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java
index 81dae10..a0a396e 100644
--- a/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java
+++ b/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java
@@ -16,23 +16,21 @@
  */
 package org.apache.camel.kamelets.utils.transform;
 
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangeProperty;
 import org.apache.camel.InvalidPayloadException;
 
-import java.util.HashMap;
 import java.util.Map;
 
 public class ExtractField {
 
-    public void process(@ExchangeProperty("field") String field, Exchange ex) throws InvalidPayloadException {
-        Map<Object, Object> body = ex.getMessage().getBody(Map.class);
-        if (body == null) {
-            String val = ex.getMessage().getMandatoryBody(String.class);
-            body = new HashMap<>();
-            // TODO: make this configurable
-            body.put("content", val);
-        }
+    public void process(@ExchangeProperty("field") String field, Exchange ex) {
+        ObjectMapper mapper = new ObjectMapper();
+        JsonNode jsonNodeBody = ex.getMessage().getBody(JsonNode.class);
+        Map<Object, Object> body = mapper.convertValue(jsonNodeBody, new TypeReference<Map<Object, Object>>(){});
         ex.getMessage().setBody(body.get(field));
     }