Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-02-16 | Add new private class JSON::Writer | m-holger | |
Create a simple utility class for writing JSON to a pipeline. | |||
2024-01-15 | Add new method JSON::getDictItem | m-holger | |
2024-01-01 | Update copyright to 2024 | Jay Berkenbilt | |
2023-06-02 | Fix doc typos | m-holger | |
2023-05-27 | Code tidy - reflow comments and strings | m-holger | |
2023-05-21 | Rerun clang-format | Jay Berkenbilt | |
2023-05-21 | Move JSON_array for C++-20 compatibility (fixes #943) | Jay Berkenbilt | |
2023-05-20 | Replace 'virtual' specifier with 'override' | m-holger | |
2023-02-25 | Update copyright to 2023 | Jay Berkenbilt | |
2023-02-19 | Change JSON::Members::value to std::unique_ptr | m-holger | |
2023-02-19 | Change JSON_dictionary and JSON_array to store JSON objects rather than ↵ | m-holger | |
std::shared_ptr<JSON_value> Recognise that JSON objects are effectively shared pointers to JSON_value. | |||
2023-02-18 | Merge pull request #890 from m-holger/jpsp | Jay Berkenbilt | |
Eliminate the use of shared pointers in JSONParser | |||
2023-02-11 | Refactor JSON type checks | m-holger | |
2023-02-05 | Eliminate the use of shared pointers in JSONParser | m-holger | |
2023-01-28 | Refactor JSON::writeNext | m-holger | |
2022-09-23 | Comment about qpdf/PointerHolder.hh in public headers | Jay Berkenbilt | |
2022-07-31 | Fix/clarify meaning of depth parameter to json write methods | Jay Berkenbilt | |
2022-07-31 | Spell check | Jay Berkenbilt | |
2022-07-24 | JSON schema: support multi-element array validation | Jay Berkenbilt | |
2022-07-24 | JSON schema -- accept single item in place of array | Jay Berkenbilt | |
When the schema wants a variable-length array, allow a single item as well as allowing an array. | |||
2022-06-09 | Fix minor doc typos in JSON.hh | m-holger | |
2022-05-21 | JSON: Fix large file support | Jay Berkenbilt | |
2022-05-20 | JSON: detect duplicate dictionary keys while parsing | Jay Berkenbilt | |
2022-05-14 | JSON reactor: improve handling of nested containers | Jay Berkenbilt | |
Call the parent container's item method before calling the child item's start method so we can easily know the current nesting level when nested items are added. | |||
2022-05-07 | Prepare code for JSON v2 | Jay Berkenbilt | |
Update getJSON() methods and calls to them | |||
2022-05-07 | Objects json: write incrementally and in numeric order | Jay Berkenbilt | |
The following script was used to adjust test data: ---------- #!/usr/bin/env python3 import json import sys import re def json_dumps(data): return json.dumps(data, ensure_ascii=False, indent=2, separators=(',', ': ')) for filename in sys.argv[1:]: with open(filename, 'r') as f: data = json.loads(f.read()) if 'objects' not in data: continue trailer = None to_sort = [] for k, v in data['objects'].items(): if k == 'trailer': trailer = v else: m = re.match(r'^(\d+) \d+ R', k) if m: to_sort.append([int(m.group(1)), k, v]) newobjects = {x[1]: x[2] for x in sorted(to_sort)} if trailer is not None: newobjects['trailer'] = trailer data['objects'] = newobjects print(json_dumps(data)) ---------- | |||
2022-05-07 | Make JSON::writeNext public | Jay Berkenbilt | |
2022-05-07 | JSON: add blob type that generates base64-encoded binary data | Jay Berkenbilt | |
2022-05-04 | Change JSON parser to parse from an InputSource | Jay Berkenbilt | |
2022-05-04 | JSON: add write methods and implement unparse() in terms of those | Jay Berkenbilt | |
2022-05-02 | Add reactors to the JSON parser | Jay Berkenbilt | |
2022-04-16 | Use = default and = delete where possible in classes | Jay Berkenbilt | |
2022-04-09 | Replace PointerHolder with std::shared_ptr in library sources only | Jay Berkenbilt | |
(patrepl and cleanpatch are my own utilities) patrepl s/PointerHolder/std::shared_ptr/g {include,libqpdf}/qpdf/*.hh patrepl s/PointerHolder/std::shared_ptr/g libqpdf/*.cc patrepl s/make_pointer_holder/std::make_shared/g libqpdf/*.cc patrepl s/make_array_pointer_holder/QUtil::make_shared_array/g libqpdf/*.cc patrepl s,qpdf/std::shared_ptr,qpdf/PointerHolder, **/*.cc **/*.hh git restore include/qpdf/PointerHolder.hh cleanpatch ./format-code | |||
2022-04-04 | Programmatically apply new formatting to code | Jay Berkenbilt | |
Run this: for i in **/*.cc **/*.c **/*.h **/*.hh; do clang-format < $i >| $i.new && mv $i.new $i done | |||
2022-02-07 | Update for clean compile with POINTERHOLDER_TRANSITION=2 | Jay Berkenbilt | |
2022-02-04 | Update copyright for 2022 | Jay Berkenbilt | |
2022-02-04 | JSON: use std::shared_ptr internally | Jay Berkenbilt | |
2022-02-02 | Fix some doc typos | m-holger | |
2022-01-30 | Allow optional fields in json "schema" checks | Jay Berkenbilt | |
2022-01-30 | Implement JSONHandler for recursively processing JSON | Jay Berkenbilt | |
2022-01-30 | Add JSON::parse | Jay Berkenbilt | |
2022-01-30 | Add JSON::isDictionary and JSON::isArray | Jay Berkenbilt | |
2021-01-04 | Update copyright to 2021 | Jay Berkenbilt | |
2020-01-26 | Update copyright to 2020 | Jay Berkenbilt | |
2019-01-07 | Update copyrights for 2019 | Jay Berkenbilt | |
2019-01-05 | Spell check | Jay Berkenbilt | |
2018-12-25 | JSON::serialize -> unparse | Jay Berkenbilt | |
Unparse is admittedly strange, but I'd rather be strange and consistent, and everything else in the qpdf library uses unparse to serialize. (If you're reading this, the convention of using "unparse" comes from the "clu" programming language.) | |||
2018-12-22 | Add simple JSON serializer | Jay Berkenbilt | |