refactor: rename and update JSON extension components#7
Merged
ProjectSky merged 9 commits intomainfrom Nov 21, 2025
Merged
Conversation
- Renamed `YYJSON` to `JSON` throughout the codebase for consistency - Updated file names and references, including `YYJSONManager` to `JsonManager` - Modified performance benchmark and test scripts to reflect the new naming - Removed deprecated files related to the old `YYJSON` implementation - Updated documentation and README to align with the new JSON extension naming conventions
- Introduced SetErrorSafe function to standardize error message handling across JSON operations, improving safety and consistency - Removed deprecated SetPackError function to reduce redundancy - Updated IJsonManager interface to include a default destructor fix: fix Windows compilation failure - Fix Windows build failure caused by missing C++17 specification
- Introduced WriteToStringPtr method in IJsonManager and JsonManager for efficient JSON serialization, avoiding intermediate buffer allocations. - Updated documentation to highlight performance considerations and usage recommendations.
- Introduced RefCounted and RefPtr classes for intrusive reference counting of JSON documents - Updated IJsonManager to include GetRefCount method for retrieving the reference count of JSON values - Refactored JsonManager to utilize RefPtr for managing mutable and immutable JSON documents, enhancing memory management - Updated documentation to reflect changes in JSON value handling and reference counting
- Implemented ApplyJsonPatch and JsonPatchInPlace methods in IJsonManager and JsonManager for applying JSON Patch operations - Introduced ApplyMergePatch and MergePatchInPlace methods for JSON Merge Patch operations - Updated README to include support for JSON Patch and Merge Patch features - Enhanced JSON iterator functionality with reset capabilities for both array and object iterators - Refactored related methods to improve error handling and memory management - Updated tests to cover new patch functionalities and ensure correctness
feat: add reference counting to JSON documents
- Updated SetFpToFloat and SetFpToFixed methods to clarify serialization effects in documentation - Adjusted precision limits for SetFpToFixed from 1-15 to 1-7 - Improved error handling for parameter limits in json_pack and related methods - Added notes across various JSON methods to emphasize memory management requirements
…atures - Added ObjectRotate and ArrayRotate methods for rotating key-value pairs in JSON objects and arrays, respectively - Introduced GetValCount method to retrieve the total number of values in immutable JSON documents - Fixed TypeAccess configuration to allow external extensions to create JSON handles by setting HTypeAccess_Create flag in handle type registration - Renamed GetHandleType to GetJsonHandleType GetFromHandle to GetValueFromHandle for better clarity and consistency - Updated documentation to clarify usage and performance considerations for new methods - Enhanced tests to cover rotation functionality and value counting in various JSON structures
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
YYJSONtoJSONthroughout the codebase for consistencyYYJSONManagertoJsonManagerYYJSONimplementation