diff --git a/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java b/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java
index ecc61b49d..aca14e1a4 100644
--- a/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java
+++ b/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java
@@ -18,6 +18,8 @@
*/
package org.librecms.assets;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.librecms.contentsection.Asset;
import java.io.Serializable;
@@ -38,6 +40,8 @@ import org.hibernate.envers.NotAudited;
import org.libreccm.core.UnexpectedErrorException;
import org.libreccm.jpa.utils.MimeTypeConverter;
import org.libreccm.l10n.LocalizedString;
+import org.libreccm.ui.admin.imexport.MimeTypeJsonDeserializer;
+import org.libreccm.ui.admin.imexport.MimeTypeJsonSerializer;
import org.librecms.contentsection.privileges.AssetPrivileges;
import java.io.InputStream;
@@ -149,6 +153,8 @@ public class BinaryAsset extends Asset implements Serializable {
@Column(name = "MIME_TYPE", length = 512, nullable = false)
@Convert(converter = MimeTypeConverter.class)
+ @JsonSerialize(using = MimeTypeJsonSerializer.class)
+ @JsonDeserialize(using = MimeTypeJsonDeserializer.class)
private MimeType mimeType;
@Column(name = "ASSET_DATA")
diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/imexport/MimeTypeJsonDeserializer.java b/ccm-core/src/main/java/org/libreccm/ui/admin/imexport/MimeTypeJsonDeserializer.java
new file mode 100644
index 000000000..1a001759d
--- /dev/null
+++ b/ccm-core/src/main/java/org/libreccm/ui/admin/imexport/MimeTypeJsonDeserializer.java
@@ -0,0 +1,39 @@
+package org.libreccm.ui.admin.imexport;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.JsonNode;
+
+import java.io.IOException;
+
+import javax.activation.MimeType;
+import javax.activation.MimeTypeParseException;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+public class MimeTypeJsonDeserializer extends JsonDeserializer {
+
+ @Override
+ public MimeType deserialize(
+ final JsonParser parser,
+ final DeserializationContext ctxt
+ ) throws IOException, JsonProcessingException {
+ final JsonNode node = parser.getCodec().readTree(parser);
+ final String value = node.get("mimeType").asText();
+ try {
+ return new MimeType(value);
+ } catch (MimeTypeParseException ex) {
+ throw new IllegalArgumentException(
+ String.format(
+ "Value \"%s\" not parseable as MimeType.",
+ value
+ )
+ );
+ }
+ }
+
+}
diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/imexport/MimeTypeJsonSerializer.java b/ccm-core/src/main/java/org/libreccm/ui/admin/imexport/MimeTypeJsonSerializer.java
new file mode 100644
index 000000000..9e99915d5
--- /dev/null
+++ b/ccm-core/src/main/java/org/libreccm/ui/admin/imexport/MimeTypeJsonSerializer.java
@@ -0,0 +1,28 @@
+package org.libreccm.ui.admin.imexport;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+
+import javax.activation.MimeType;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+public class MimeTypeJsonSerializer extends JsonSerializer {
+
+ @Override
+ public void serialize(
+ final MimeType value,
+ final JsonGenerator generator,
+ final SerializerProvider serializers
+ ) throws IOException {
+ generator.writeStartObject();
+ generator.writeStringField("mimeType", value.toString());
+ generator.writeEndObject();
+ }
+
+}