--- parser3/operators.txt 2010/08/04 15:20:31 1.230 +++ parser3/operators.txt 2010/09/17 00:01:03 1.231 @@ -842,6 +842,35 @@ odbc c:\drives\y\parser3project\odbc\deb !^inet:ntoa(long) !^inet:aton[IP] +!json + !^json:parse[-json-строка-[; + $.depth(максимальная глубина, default == 19) + $.double(false) отключить встроенный парсинг чисел с плавающей точкой (по умолчанию включен) + в этом случае они попадут в результирующий объект как строки + $.distinct[first|last|all] как будет происходить разбор дублирующихся ключей у объектов + first -- будет оставлен первый встретившийся элемент + last -- будет оставлен последний встретившийся элемент + all -- будут оставлены все элементы. при этом элементы, начиная со 2 + получат числовые суффиксы (key_2 итд) + по умолчанию дублирующиеся ключи приводыт к exception + $.object[method-junction] пользовательский метод, которому будут передаваться все разобранные пары + ключ/значение + ]] + парсит json-строку в хэш + !^json:string[system or user object[; + $.skip-unknown(false) отключить exception и выдавать 'null' при сериализации объектов с типами + отличных от void, bool, string, int, double, date, table, hash и file + $.date[sql-string|gmt-string|unix-timestamp] формат вывода даты, по умолчанию -- sql-string + $.table[object|array] формат вывода таблицы, по умолчанию -- object + object: [{"c1":"v11","c2":"v12",...},{"c1":"v21","c2":"v22",...},...] + array: [["c1","c2",...] || null (for nameless),["v11","v12",...],...] + $.file[text|base64] вывести тело файла в указанном виде (по умолчание тело файла + не попадает в output) + $.тип[method-junction] любой тип можно вывести с помощью пользовательского метода, который + должен принимать 2 параметра: значение и параметры + ]] + сериализует системный или пользовательский объект в json-строку + !date !время типа time можно использовать в выражениях, подставляет