 			
 			var result:* = method.apply(null, params);
 			
+			// object to json
 			var resultJson:*;
 			if (json)
-				resultJson = json.stringify(result, _jsonReplacer) || 'undefined';
+				resultJson = json.stringify(result, _jsonReplacer) || 'null';
 			else
-				resultJson = _jsonReplacer('', result);
+				resultJson = result is Array ? (result as Array).map(_mapJsonReplacer) : _jsonReplacer('', result);
 			
 			// work around unescaped backslash bug
 			if (resultJson is String && backslashNeedsEscaping && (resultJson as String).indexOf('\\') >= 0)

			if (method == null)
				throw new Error('No method with id="' + methodId + '"');
			
			var params:Array;
			if (json)
				params = json.parse(paramsJson, _jsonReviver);

							mappedValue = callback.call(T, kValue, k, O);
							A[k] = mappedValue;
						}
						k++;
					}
					return A;
