1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- MODULE JSonObxNoModel;
- (**
- project = "YSon"
- organization = ""
- contributors = ""
- version = "System/Rsrc/About"
- copyright = "Kushnir Piotr Michailovich"
- license = "Docu/BB-License"
- purpose = "демонстрация работы форматтера без использования динамических моделей данных"
- changes = "
- - 20130527, pk, автогенерация заголовка, документирование
- - 20150204, pk, порт для fw
- "
- issues = ""
- **)
- IMPORT
- Gen:=JSonGenerator, F:=JSonFormatter,
- Out;
-
- TYPE
- Wr = POINTER TO RECORD (Gen.Writer) END; (* дефолтный вывод - в лог *)
-
- PROCEDURE (w: Wr) Char (c: CHAR);
- BEGIN
- Out.Char(c);
- END Char;
-
- PROCEDURE (w: Wr) Whitespace (s: ARRAY OF CHAR);
- BEGIN
- CASE s[0] OF
- 09X: Out.Tab;
- |0DX, 0AX: Out.Ln;
- |' ': Out.Char(' ');
- ELSE Out.String(s$) END
- END Whitespace;
- (* формирование структуры JSON непосредственно при выполнении комманд форматтера *)
- PROCEDURE Do*;
- TYPE Base = POINTER TO RECORD END;
- VAR b: Base; wr: Wr; f: F.Formatter; res: INTEGER;
- BEGIN
- Out.Ln;
- NEW(wr);
- NEW(b);
- wr.SetBase(b);
- f:=F.dir.New(wr);
- (* демонстрация пошагового результата *)
- f.WriteSym(F.arrBegin, res); (* [ *)
- f.WriteSym(F.objBegin, res); (* { *)
- f.WriteName('obj', res); (* "obj" *)
- f.WriteSym(F.objBegin, res); (* { *)
- f.WriteSym(F.objEnd, res); (* } *)
- f.WriteName('arr', res); (* "arr" *)
- f.WriteSym(F.arrBegin, res); (* [ *)
- f.WriteValue(F.atomVal, 'true', res); (* true *)
- f.WriteValue(F.atomVal, 'true', res); (* true *)
- f.WriteValue(F.atomVal, 'true', res); (* true *)
- f.WriteSym(F.objBegin, res); (* { *)
- f.WriteSym(F.objEnd, res); (* } *)
- f.WriteSym(F.arrBegin, res); (* [ *)
- f.WriteSym(F.arrEnd, res); (* ] *)
- f.WriteSym(F.arrEnd, res); (* ] *)
- f.WriteName('sss', res); (* "sss" *)
- f.WriteValue(F.atomVal, 'true', res); (* true *)
- f.WriteName('sss1', res); (* "sss1" *)
- f.WriteValue(F.stringVal, 'hello, world!', res); (* "hello, world!" *)
- f.WriteSym(F.objEnd, res); (* } *)
- f.WriteSym(F.arrEnd, res); (* ] *)
- END Do;
-
- BEGIN
- END JSonObxNoModel.
- (*JediPlain*gvFEZXZDb21tYW5kZXJzLlN0ZFZpZXdEZXNjAPFEZXZDb21tYW5kZXJzLlZpZXdEZXNjAPFWaWV3cy5WaWV3RGVzYwDwU3RvcmVzLlN0b3JlRGVzYwAAAAAAAAAAAAAAAAAGAAAAAAAAFQAA*)YSonObxNoModel.Do
|