? tojson.patch Index: json_server.js =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/json_server/json_server.js,v retrieving revision 1.1 diff -u -p -r1.1 json_server.js --- json_server.js 9 Nov 2007 17:34:57 -0000 1.1 +++ json_server.js 1 Apr 2009 20:59:40 -0000 @@ -1,6 +1,17 @@ //$Id: json_server.js,v 1.1 2007/11/09 17:34:57 dmitrig01 Exp $ +function isArray(obj) { + if (obj.constructor.toString().indexOf("Array") == -1) + return false; + else + return true; +} + Drupal.toJson = function(v) { - switch (typeof v) { + type = typeof v; + if (type == 'object') + type = isArray(v) ? 'array' : 'object'; + + switch (type) { case 'boolean': return v == true ? 'TRUE' : 'FALSE'; case 'number': @@ -8,11 +19,19 @@ Drupal.toJson = function(v) { case 'string': return '"'+ v +'"'; case 'object': - var output = "{"; + var output = ''; for(i in v) { output = output + i + ":" + Drupal.toJson(v[i]) + ","; } - output = output + "}"; + output = "{" + output + "}"; + return output; + case 'array': + var output = ''; + items = new Array(); + for(i in v) { + items[i] = Drupal.toJson(v[i]); + } + output = "[" + items.join(",") + "]"; return output; default: return 'null';