Description: fcl-json and -schema

This file as text.
(active) Revisions in this set:
baec255bbc8fc6eb7378c142148fa375398e35bc,a7951612da74ed7b709dc4b3ebb759eec1da3b2f,b2251e34691a63bbb61cfaecd6125db6a51a23c6
dd6ccd0fb4bf6ed6988ad04fb71ee441a4600438,5700cb56aca837a4ba11b3451ab3630596e98ca9,f2ba814b9e75bfae1aadfcb4fbefb0696f5c8c0d
1b7aefc11df9cf7f034a29c4c372d571ab49e78b,44a2d4a1eb57711b0050279cc9f4a5cf558bd38b,940016034c369bf8f20ac2cdd8b4d57bd0ff7a77
8d7a1585d7c0e7c0873f6196288a6e5f8b78972d,ba15672a4414526fec873833d40d6e7d432e34c9,38776ca494b22f518de94226143d1505e8df4a55
fb7c1d880519d633f03477a789c2c87bb7c14685,1f4b8a774f82ac843b0b3b09c377e6b22ac0f39a,450f250b2cfb817e39f18d4e0929fe3f14189496
bcaae577989d727919bfe5e1f2b2cf9aed394bb6,9ac0a54ad2d05ef79cb6cd3556d5b9a71a829a31,76648d40225e8f267ef7db6f88720696cf532dc1
9918bb5619c218ea37a234ab93881a8c60e24b7f,a65fff24e938b9013076c5462e121f3f3b90d86b,13fbc876e0b46bc7b4b6619b2f1b0ef82b981552
10d913624dd54fbe8fb3a55fc45c77fa6267c84a,e2be33b4bed12ead6e7659c999d5bbf4b8ae705b,f259ca5e40a5974443045759f7dd2a4cb380e38c
00f015f593865a453949e56db8edb499766de06a,8e1ecb6a67c48b8c31a5a31769af555f1fbbb87a,b5de5eed0e28f0d1fa3bad97af033a2038dd4bb2
dc2261eff041fd500eb3d4df3cb1a7cbb1302af6,f6419874645e723d5e105c8f78530a31827ec9e6,a99ddc37538bfc87e169fa5b65a2af1d999d7f0c
4f10c539baabb55ad648b1c23fa3edbe77295115,77cb7cd454d4c98a9ae46537654a63a67e3f0046,31448dcf03274e3760cf27ea838b56c86fa9591d
b8cc7fb17591772e40cc2232acf85b386ffef5a4,cc0adf66d0491527fdad460db144f372f6437b62,2d40b7c463eb3c0b7eb698c3d506909e0fcb0103
f52350382817a9aac3bbab9b8e869332d209bcb6,3f4298dbcaf7efb912eea9a81db216fef6345903,b95db4b610eec3bb298d1f85b30e36dcd799dae8
38b5a4cbb7546f1943ffbfbaef6124cbf178cdbc,86da0baf02481d1afe25962bcd46f243edf3566a,8d24a28c56af4482982d8e44db12645baa59f37f
0ca0990e8bda7df7971edf4e8d2ce35b56a1021a,8cedb10c3a01510b921bc918d674cfd94b04349c,687384f09123943a7d97082dff4de7315faaee90
9b2b1c12ff14617877a441d51ff27c01c196deb7,223745f6b7bebee9efe845f390f8287bf8604305,98b551d261663612e3af5016bb5b406b9a6a4e89
9658da7b2e11aa760cdfb6cf6119f30bcb5e21c2,2594c8c4bf48b82aec8d601a285375b3f61bcbc1,0e2890630c1cf3f0126ed67c795b876d33d61add
9424e9fda5e528cee0eed7fa1a98578fff90be06,3c1e3b663a2e7e89ae1ba39734fb57b6d7b9c04f,391c5b79e433cbee3f3d2d34f2e382afd5475f0c
27e2871246564d18f829820f2e78ffdc2ff93004,78ccbc6d607460921248507d3f9f6ff8a24659aa,5bf63265aafe976efda4e030359fa5063a94cd6d
7e4d5a15e924b1a09c0ea8be50667f7215c0d7d4,e4224aea8820b3e46982c0dd5d145e206e7f3e9d,2d343150529f33b56fc9ecb1b2a7fdc02c8ff79f
d216010b3fd02fcb6b48f9346fe5a1d1ec6e546e,d686abacc62989585a38d6a8dd98d6f63014abef,00c6fbe8ba3d02220020e37e5d54eeb92b84d187
ca76902643cb58c30e0b12220e8fcb70921dce67,52130578c441dc5b1d0b812ff9df5a0314bb8f5e,67ec1358966a0f7abd438b7634e70e256440e4b7
3b7f402136e1ffdfe8854f50c5bfe21f1e697d81,43dc8c41fc3b6c797810ca4a4458ebbac50b0488,a07cd7cef18667c58e0c3b332d3354fc46598fac
cc8359b7035465e1b8e91c8c85108cf86f577a63,06748de38f55328bb612537a8f919a388505313d,ddf7126972972b2bd185c6e07f4d20600ce2cca6
6001b7e9771de235ba1ee09781243495e8ab340d,5ce1288e9e24cafdca21698d4cddf6994df5b698,745e21ba0b32f88ee245aa5ee66d97f1f3700fa0
435e50b55cb5a6e30cfebcc6ba30261b8f020b2b,f3b776834edb64d7c4264001c0c0ffb765da2f3b,8e67f7d2b251f97369c667fc1fe7528965c84083
ab471543d2e54c7ed05fe9508f1cf126f7d798ac,f906495ef82e9797af6ae885f698eec50ef66b66,8838f70345199512fc0f3fc096a19c91f6c586e0
3539b5710b3ed08d6329f97b786dea617bfd5b95

Clicking a revision will expand files
 


* fpjsonvalue unit to convert between TValue (RTTI unit) and JSON
Commit consists out of
  • M packages/fcl-json/fpmake.pp
  • A packages/fcl-json/src/fpjsonvalue.pp


fcl-json: clean up, updated TestStrings
Commit consists out of
  • M packages/fcl-json/src/fpjsontopas.pp
  • M packages/fcl-json/tests/jsonconftest.pas
  • M packages/fcl-json/tests/tcjsontocode.pas
  • M packages/fcl-json/tests/testjson2code.lpi
  • M packages/fcl-json/tests/testjson2code.lpr
  • M packages/fcl-json/tests/testjsonconf.lpi


fcl-json: clean up
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp


fcl-json: fixed compile with fpc 3.2.2
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp


fcl-json: fixed StringToJSONString
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp
  • M packages/fcl-json/tests/jsonconftest.pas
  • M packages/fcl-json/tests/testjsondata.pas


fcl-json: StringToJSON: fixed pas2js compile and less mem allocations
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp
  • M packages/fcl-json/tests/testjsondata.pas


fcl-json: fixed compile pas2js
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp


fcl-json: add support to create JSONObject with QWord values
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp
  • M packages/fcl-json/tests/testjsondata.pas


* PChar -> PAnsiChar
Commit consists out of
  • M packages/fcl-json/examples/simpledemo.pp
  • M packages/fcl-json/src/fpjson.pp
  • M packages/fcl-json/src/fpjsonrtti.pp
  • M packages/fcl-json/src/jsonreader.pp
  • M packages/fcl-json/src/jsonscanner.pp
  • M packages/fcl-json/tests/testjson.lpi
  • M packages/fcl-json/tests/testjsondata.pas
  • M packages/fcl-json/tests/testjsonparser.pas
  • M packages/fcl-json/tests/testjsonrtti.pas


* Dotted filenames for package fcl-json
Commit consists out of
  • A packages/fcl-json/namespaced/FpJson.Apply.pp
  • A packages/fcl-json/namespaced/FpJson.Conf.pp
  • A packages/fcl-json/namespaced/FpJson.Data.pp
  • A packages/fcl-json/namespaced/FpJson.Fpjson.pp
  • A packages/fcl-json/namespaced/FpJson.Ini.pp
  • A packages/fcl-json/namespaced/FpJson.Json2Yaml.pp
  • A packages/fcl-json/namespaced/FpJson.Parser.pp
  • A packages/fcl-json/namespaced/FpJson.Reader.pp
  • A packages/fcl-json/namespaced/FpJson.Rtti.pp
  • A packages/fcl-json/namespaced/FpJson.Scanner.pp
  • A packages/fcl-json/namespaced/FpJson.ToPas.pp
  • A packages/fcl-json/namespaced/FpJson.Value.pp
  • A packages/fcl-json/namespaces.lst
  • M packages/fcl-json/src/fpjson.pp
  • M packages/fcl-json/src/fpjsonapply.pp
  • M packages/fcl-json/src/fpjsonrtti.pp
  • M packages/fcl-json/src/fpjsontopas.pp
  • M packages/fcl-json/src/fpjsonvalue.pp
  • M packages/fcl-json/src/json2yaml.pp
  • M packages/fcl-json/src/jsonconf.pp
  • M packages/fcl-json/src/jsonfpcunit.pp
  • M packages/fcl-json/src/jsonini.pp
  • M packages/fcl-json/src/jsonparser.pp
  • M packages/fcl-json/src/jsonreader.pp
  • M packages/fcl-json/src/jsonscanner.pp


* Added JSON fpcunit helper
Commit consists out of
  • M packages/fcl-json/fpmake.pp
  • A packages/fcl-json/src/jsonfpcunit.pp


* Use const string arguments where possible. Fixes issue gitlab 0040441
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp
  • M packages/fcl-json/src/fpjsonapply.pp
  • M packages/fcl-json/src/fpjsonrtti.pp


* Add foForceLF to allow LF-separated files on windows. Fixes issue gitlab 0039893
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp
  • M packages/fcl-json/tests/testjson.lpi
  • M packages/fcl-json/tests/testjsondata.pas


* Fix compilation in unicode RTL
Commit consists out of
  • M packages/fcl-json/src/jsonscanner.pp


fcl-json: fixed compile with pas2js
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp


* Replace widestring with unicodestring (faster on windows). Fixes issue gitlab 0040613
Commit consists out of
  • M packages/fcl-json/src/jsonscanner.pp


Waaay faster TJSONScanner.
Commit consists out of
  • M packages/fcl-json/src/jsonscanner.pp


* Fix compilation in unicode rtl
Commit consists out of
  • M packages/fcl-json/src/jsonscanner.pp


Use varints for TJSONScanner.FParts to save memory.
Commit consists out of
  • M packages/fcl-json/src/jsonscanner.pp


* JSON Schema
Commit consists out of
  • A packages/fcl-jsonschema/Makefile
  • A packages/fcl-jsonschema/fpmake.pp
  • A packages/fcl-jsonschema/src/fpjson.schema.consts.pp
  • A packages/fcl-jsonschema/src/fpjson.schema.loader.pp
  • A packages/fcl-jsonschema/src/fpjson.schema.reader.pp
  • A packages/fcl-jsonschema/src/fpjson.schema.schema.pp
  • A packages/fcl-jsonschema/src/fpjson.schema.types.pp
  • A packages/fcl-jsonschema/src/fpjson.schema.validator.pp
  • A packages/fcl-jsonschema/src/fpjson.schema.writer.pp
  • A packages/fcl-jsonschema/tests/fpjson.schema.testutils.pp
  • A packages/fcl-jsonschema/tests/testschema.lpi
  • A packages/fcl-jsonschema/tests/testschema.lpr
  • A packages/fcl-jsonschema/tests/utOfficialTests.pp
  • A packages/fcl-jsonschema/tests/utSchema.pp
  • A packages/fcl-jsonschema/tests/utSchemaTypes.pp
  • A packages/fcl-jsonschema/tests/utSchemaValidator.pp
  • A packages/fcl-jsonschema/tests/utSchemaWriter.pp
  • M packages/fpmake_add.inc
  • M packages/fpmake_proc.inc


* Rename keyword info to avoid confusion
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.loader.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.reader.pp


* Flush when saving. Fixes issue gitlab 0040938
Commit consists out of
  • M packages/fcl-json/src/jsonconf.pp


* Only flush when actually writing
Commit consists out of
  • M packages/fcl-json/src/jsonconf.pp


* Add foFormatFloat option to FormatJSON. Fixes issue gitlab 0040937
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp
  • M packages/fcl-json/tests/testjson.lpi
  • M packages/fcl-json/tests/testjsondata.pas


* Make flush virtual. Fixes issue gitlab 0040942
Commit consists out of
  • M packages/fcl-json/src/jsonconf.pp


* Inline documentation of TJSONOption. Fixes issue gitlab 0040943
Commit consists out of
  • M packages/fcl-json/src/jsonscanner.pp


* Update some comments
Commit consists out of
  • M packages/fcl-json/src/jsonscanner.pp


* Add readfromscanner, fix reading type
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.reader.pp


* Pascal code generation starting from json-schema
Commit consists out of
  • M packages/fcl-jsonschema/fpmake.pp
  • A packages/fcl-jsonschema/src/fpjson.schema.codegen.pp
  • A packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* JSON Writer
Commit consists out of
  • M packages/fcl-json/fpmake.pp
  • A packages/fcl-json/namespaced/FpJson.Writer.pp
  • M packages/fcl-json/namespaces.lst
  • A packages/fcl-json/src/jsonwriter.pp


* Refactor to use jsonwriter
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.consts.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.writer.pp


* Remove references to openAPI
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* Forgot to commit
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp


* Some cleanup, fix warnings/hints
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.schema.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.types.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.validator.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.writer.pp


* Tests for code generation. Change type handling to create pascal type data for all data
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.schema.pp
  • M packages/fcl-jsonschema/tests/testschema.lpi
  • M packages/fcl-jsonschema/tests/testschema.lpr
  • A packages/fcl-jsonschema/tests/utSchemaPascalTypes.pas


* SortProperties public
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* Calculate dependencies correctly, only generate definitions for schema types
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* OpenAPI, initial commit
Commit consists out of
  • M packages/fcl-json/fpmake.pp
  • A packages/fcl-json/namespaced/FpJson.Comparer.pp
  • M packages/fcl-json/namespaces.lst
  • A packages/fcl-json/src/jsoncomparer.pp
  • A packages/fcl-openapi/fpmake.pp
  • A packages/fcl-openapi/src/fpopenapi.consts.pp
  • A packages/fcl-openapi/src/fpopenapi.objects.pp
  • A packages/fcl-openapi/src/fpopenapi.pascaltypes.pp
  • A packages/fcl-openapi/src/fpopenapi.reader.pp
  • A packages/fcl-openapi/src/fpopenapi.types.pp
  • A packages/fcl-openapi/src/fpopenapi.writer.pp
  • A packages/fcl-openapi/tests/testopenapi.lpi
  • A packages/fcl-openapi/tests/testopenapi.pp
  • A packages/fcl-openapi/tests/utOpenAPIWriter.pp
  • A packages/fcl-openapi/tests/utOpenApi.pp
  • A packages/fcl-openapi/tests/utOpenApiReader.pp
  • M packages/fpmake_add.inc
  • M packages/fpmake_proc.inc


* Fixes in array type handling
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* Add newline after uses clause
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp


* Corrections when writing file: write in 3.1 format
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.writer.pp


* Do not call parsing if JSON is empty (e.g. return 204 with empty body)
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp


* System.Types for Delphi code
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp


* Search for correct element type when checking array types
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


fcl-json: less hints
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp


* Add possibility to specify UTC or not
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp


* Generate also string (enum) type definitions
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp
  • M packages/fcl-openapi/src/fpopenapi.pascaltypes.pp


* Fix naming for string types
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


Faster FormatJSON.
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp


fpjson.pp adjustments: 37.5% growth, remove unused NCachedIndents, de-unoptimize potentially usable IndentSize = 0.
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp


* Remove debug statement
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* Generate API array types
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp


* Sanitize property names and type names
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* Not all types may need serialization
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp


* Serialize arrays of basic types
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* Remove some more debug statements
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


fcl-json: clean up
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp


Reducing unnecessary UTF8<->String encoding conversions
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp


* Support anonymous types in arrays
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


Resolve array elements
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


better handling of array types
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp


Remove implicit string conversion. The digits of the number will always be less than $7F. ~7%
Commit consists out of
  • M packages/fcl-json/src/jsonreader.pp


StringParse - without unnecessary conversions, speedup~12%
Commit consists out of
  • M packages/fcl-json/src/jsonreader.pp
  • M packages/fcl-json/src/jsonscanner.pp


Use JSONType for checking, "is" is heavier, speedup~3%
Commit consists out of
  • M packages/fcl-json/src/jsonparser.pp


IndexOfName (string finalization) another speedup ~1%
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp


Calculating string length immediately, speedup 2.5%
Commit consists out of
  • M packages/fcl-json/src/jsonscanner.pp


ParseString string finalization ~0.5–1%
Commit consists out of
  • M packages/fcl-json/src/jsonreader.pp


Remove finalization calls in TJSONObject.Create(Elements), speedup~2.5%
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp
  • M packages/fcl-json/src/jsonparser.pp


Fewer warnings
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp
  • M packages/fcl-json/src/jsonscanner.pp


Build the string immediately if there are no special encoded characters, speedup ~6%
Commit consists out of
  • M packages/fcl-json/src/jsonscanner.pp


* Fix gitlab 0041563
Commit consists out of
  • M packages/fcl-json/src/jsonscanner.pp


* Raise exception in case of no JSON and joSingle. Fix issue gitlab 0041588
Commit consists out of
  • M packages/fcl-json/src/jsonparser.pp


* Allow to "reserve" type names which need to be transformed
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.codegen.pp
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* Fix checking of interdependent types
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* More keywords
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* Additional standard types
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* More reserved types
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* More reserved types
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* mechanism for de-duplicating identifiers, and shortening long identifiers
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


* Additional case of duplicate names
Commit consists out of
  • M packages/fcl-jsonschema/src/fpjson.schema.pascaltypes.pp


Delphi compatibility.
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp
  • M packages/fcl-passrc/src/pastree.pp


* Fix issue gitlab 0040835
Commit consists out of
  • M packages/fcl-json/src/fpjsonrtti.pp
  • M packages/fcl-json/tests/testcomps.pas
  • M packages/fcl-json/tests/testjson.lpi
  • M packages/fcl-json/tests/testjsonrtti.pas

(inactive) Revisions in this set 7631dfb563f38c9e595de8f50ef96826fabb788d,c745e2cfba3dee29c22a28ac313d6776e5118c32


* Use memorystream as a kind of tstringbuilder for json escaping(StringToJSONString), fixes bug 0039525
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp


* improved version that is still readable and has hex inline. Most importantly, it writes directly to result string rather than a temp, saving a copy that is hurting specially for longer strings.
Commit consists out of
  • M packages/fcl-json/src/fpjson.pp