public JsObject objarr2table(JsArray rs, int fixedColCnt = -1) { var h = new JsArray(); var d = new JsArray(); var ret = new JsObject() { { "h", h }, { "d", d } }; if (rs.Count == 0) { return(ret); } JsObject row0 = rs[0] as JsObject; h.AddRange(row0.Keys); if (fixedColCnt >= 0) { /* * TODO * foreach (rs as row) { * h1 = array_keys(row); * for (i=fixedColCnt; i<count(h1); ++i) { * if (array_search(h1[i], h) === false) { * h[] = h1[i]; * } * } * } */ } foreach (JsObject row in rs) { var arr = new JsArray(); d.Add(arr); foreach (string k in h) { arr.Add(row[k]); } } return(ret); }