diff --git a/VirtualRobot/Util/json/converters.cpp b/VirtualRobot/Util/json/converters.cpp
index c4efb34a2cece6a6d3bc82f0afc2cfa74ac0c2d9..d8f4b6cf77abd188c45c3031bb88c028328aaef6 100644
--- a/VirtualRobot/Util/json/converters.cpp
+++ b/VirtualRobot/Util/json/converters.cpp
@@ -1,8 +1,9 @@
+#include <boost/lexical_cast.hpp>
+
 #include <VirtualRobot/MathTools.h>
 
 #include "converters.h"
 
-
 namespace VirtualRobot::json
 {
     Eigen::Matrix4f posquat2eigen4f(const std::string& str)
@@ -83,4 +84,26 @@ namespace VirtualRobot::json
         }
         return jar.dump(4);
     }
+
+    std::map<std::string, float> json2NameValueMap(const std::string& str)
+    {
+        return json2NameValueMap(::nlohmann::json::parse(str));
+    }
+    std::map<std::string, float> json2NameValueMap(const char* str)
+    {
+        return json2NameValueMap(::nlohmann::json::parse(str));
+    }
+    std::map<std::string, float> json2NameValueMap(const nlohmann::json& j)
+    {
+        if (!j.is_object())
+        {
+            throw std::invalid_argument{"json2NameValueMap: json has to be an object"};
+        }
+        std::map<std::string, float> result;
+        for (const auto& el : j.items())
+        {
+            result[el.key()] = boost::lexical_cast<float>(el.value());
+        }
+        return result;
+    }
 }
diff --git a/VirtualRobot/Util/json/converters.h b/VirtualRobot/Util/json/converters.h
index d52c75297cdab324cc1dc97d48053af0d40e7e65..c0f0c5fb8bd261c87c3057164cc5e4764b072c61 100644
--- a/VirtualRobot/Util/json/converters.h
+++ b/VirtualRobot/Util/json/converters.h
@@ -1,5 +1,8 @@
 #pragma once
 
+#include <map>
+#include <string>
+
 #include <Eigen/Core>
 
 #include "json.hpp"
@@ -17,4 +20,8 @@ namespace VirtualRobot::json
 
     std::string eigen4f2posquatJson(const Eigen::Matrix4f& str);
     std::string eigen4fVector2posquatArrayJson(const std::vector<Eigen::Matrix4f>& str);
+
+    std::map<std::string, float> json2NameValueMap(const std::string& str);
+    std::map<std::string, float> json2NameValueMap(const char* str);
+    std::map<std::string, float> json2NameValueMap(const nlohmann::json& j);
 }