code: public void copyPush(Obj source, Obj target) {
  		Iterator<Entry<String,Object>> itr = source.iterator();
  		while (itr.hasNext()) {
  			Entry<String,Object> e = itr.next();
  			putPush(target, e.getKey(), e.getValue());
  		}
  	}
docs: {a:1} {b:1} =&gt; {a:1, b:1} {a:1} {a:1} =&gt; {a:[1, 1]} {a:1} {a:null} =&gt;
  {a:[1, null]} {a:{b:1}} {a:null} =&gt; {a:[{b:1}, null]} {a:{b:1}}
  {a:{b:{c:null}}} =&gt; {a:{b:[1,{c:null}]}} {a:1} {a:[2]} =&gt; {a:[1,2]}
  {a:[1]} {a:[2]} =&gt; {a:[1,2]} {a:{b:1}} {a:[2]} =&gt; {a:[{b:1},2]} {a:{b:1}}
  {a:{b:[2]}} =&gt; {a:{b:[1,2]}} {a:1} {} =&gt; {a:1}}