diff --git a/htdocs/core/lib/json.lib.php b/htdocs/core/lib/json.lib.php
index 24464898a285d3c7729d5968323939e7fd710ef0..9b6f5a95d62e9b44d98f7ba1877e64a973155414 100644
--- a/htdocs/core/lib/json.lib.php
+++ b/htdocs/core/lib/json.lib.php
@@ -72,15 +72,16 @@ function dol_json_encode($elements)
 		$output = '{';
 		$last = $num - 1;
 		$i = 0;
-		if (is_array($elements) && count($elements)>0) {
-			foreach($elements as $key => $value)
-			{
-				$output .= '"'.$key.'":';
-				if (is_array($value)) $output.= json_encode($value);
-				else $output .= _val($value);
-				if ($i !== $last) $output.= ',';
-				++$i;
-			}
+		$tmpelements=array();
+		if (is_array($elements)) $tmpelements=$elements;
+		if (is_object($elements)) $tmpelements=get_object_vars($elements);
+		foreach($tmpelements as $key => $value)
+		{
+			$output .= '"'.$key.'":';
+			if (is_array($value)) $output.= json_encode($value);
+			else $output .= _val($value);
+			if ($i !== $last) $output.= ',';
+			++$i;
 		}
 		$output.= '}';
 	}