code: public void copyPush(Obj source, Obj target) {
  		Iterator<String> itr = source.keyIterator();
  		while (itr.hasNext()) {
  			String key = itr.next();
  			Object sval = source.get(key);
  			putPush(target, key, sval);
  		}
  	}
docs: {a:1} {b:1} => {a:1, b:1} {a:1} {a:1} => {a:[1, 1]} {a:1} {a:null} =>
  {a:[1, null]} {a:{b:1}} {a:null} => {a:[{b:1}, null]} {a:{b:1}}
  {a:{b:{c:null}}} => {a:{b:[1,{c:null}]}} {a:1} {a:[2]} => {a:[1,2]}
  {a:[1]} {a:[2]} => {a:[1,2]} {a:{b:1}} {a:[2]} => {a:[{b:1},2]} {a:{b:1}}
  {a:{b:[2]}} => {a:{b:[1,2]}} {a:1} {} => {a:1}}