diff --git a/examples/jsonlab_selftest.m b/examples/jsonlab_selftest.m
index c29ffbe3f44c648a8028e3b6d658c7d504595284..1caaf28eccef4c6a5907d5c8a610a1aa7a35336f 100644
--- a/examples/jsonlab_selftest.m
+++ b/examples/jsonlab_selftest.m
@@ -10,3 +10,13 @@ for i=1:4
     fprintf(1,'%s\n',json);
     data=loadjson(json);
 end
+
+for i=1:4
+    fname=sprintf('example%d.json',i);
+    if(exist(fname,'file')==0) break; end
+    fprintf(1,'===============================================\n>> %s\n',fname);
+    json=saveubjson('data',loadjson(fname));
+    fprintf(1,'%s\n',json);
+    data=loadubjson(json);
+    savejson('',data)
+end
diff --git a/saveubjson.m b/saveubjson.m
index e840cb0a925b9fddd9f5b9a887edc93fee09b2fb..0a9953c7cbb3a3565a248440b7ed9100c88dd25f 100644
--- a/saveubjson.m
+++ b/saveubjson.m
@@ -237,7 +237,12 @@ if(length(size(item))>2 || issparse(item) || ~isreal(item) || ...
       if(isempty(name))
     	txt=['{' S_('_ArrayType_'),S_(class(item)),padding0,S_('_ArraySize_'),I_a(size(item),cid(1)) ];
       else
-    	txt=[S_(checkname(name,varargin{:})),'{',S_('_ArrayType_'),S_(class(item)),padding0,S_('_ArraySize_'),I_a(size(item),cid(1))];
+          if(isempty(item))
+              txt=[S_(checkname(name,varargin{:})),'Z'];
+              return;
+          else
+    	      txt=[S_(checkname(name,varargin{:})),'{',S_('_ArrayType_'),S_(class(item)),padding0,S_('_ArraySize_'),I_a(size(item),cid(1))];
+          end
       end
 else
     if(isempty(name))