diff --git a/source/RobotAPI/libraries/armem/CMakeLists.txt b/source/RobotAPI/libraries/armem/CMakeLists.txt
index 3e0900893a8d8e7a0145b1ec2a4951e94ae85b6a..38d9515cc25818652636ca4b8c5e969eaaf9519a 100644
--- a/source/RobotAPI/libraries/armem/CMakeLists.txt
+++ b/source/RobotAPI/libraries/armem/CMakeLists.txt
@@ -35,6 +35,7 @@ set(LIB_FILES
     core/Time.cpp
     core/ice_conversions.cpp
     core/aron_conversions.cpp
+    core/json_conversions.cpp
 
     core/base/detail/MemoryItem.cpp
     core/base/detail/MaxHistorySize.cpp
@@ -136,6 +137,7 @@ set(LIB_HEADERS
     core/SuccessHeader.h
     core/Time.h
     core/aron_conversions.h
+    core/json_conversions.h
     core/ice_conversions.h
     core/ice_conversions_templates.h
 
diff --git a/source/RobotAPI/libraries/armem/core/json_conversions.cpp b/source/RobotAPI/libraries/armem/core/json_conversions.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e4da9d89b5e04351e5e528132406a962470364e3
--- /dev/null
+++ b/source/RobotAPI/libraries/armem/core/json_conversions.cpp
@@ -0,0 +1,26 @@
+#include "json_conversions.h"
+
+#include <RobotAPI/libraries/armem/core/MemoryID.h>
+
+
+void armarx::armem::to_json(nlohmann::json& j, const MemoryID& bo)
+{
+    j["memoryName"] = bo.memoryName;
+    j["coreSegmentName"] = bo.coreSegmentName;
+    j["providerSegmentName"] = bo.providerSegmentName;
+    j["entityName"] = bo.entityName;
+    j["timestamp_usec"] = bo.timestamp.toMicroSeconds();
+    j["timestamp_datetime"] = toDateTimeMilliSeconds(bo.timestamp);
+    j["instanceIndex"] = bo.instanceIndex;
+}
+
+void armarx::armem::from_json(const nlohmann::json& j, MemoryID& bo)
+{
+    j.at("memoryName").get_to(bo.memoryName);
+    j.at("coreSegmentName").get_to(bo.coreSegmentName);
+    j.at("providerSegmentName").get_to(bo.providerSegmentName);
+    j.at("entityName").get_to(bo.entityName);
+    bo.timestamp = Time::microSeconds(j.at("timestamp_usec").get<int64_t>());
+    // j.at("timestamp_datetime").get_to(toDateTimeMilliSeconds(bo.timestamp));
+    j.at("instanceIndex").get_to(bo.instanceIndex);
+}
diff --git a/source/RobotAPI/libraries/armem/core/json_conversions.h b/source/RobotAPI/libraries/armem/core/json_conversions.h
new file mode 100644
index 0000000000000000000000000000000000000000..86e508c228fe57063216c2f1c6fa7710066992bc
--- /dev/null
+++ b/source/RobotAPI/libraries/armem/core/json_conversions.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include <SimoxUtility/json/json.hpp>
+
+
+namespace armarx::armem
+{
+    class MemoryID;
+
+    void to_json(nlohmann::json& j, const MemoryID& bo);
+    void from_json(const nlohmann::json& j, MemoryID& bo);
+}