-
Notifications
You must be signed in to change notification settings - Fork 5k
Prototype moving JsonData to be backed by JsonDocument #33063
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 16 commits
Commits
Show all changes
107 commits
Select commit
Hold shift + click to select a range
8e43b11
Add WriteTo(), ==operators, and PR FB
annelo-msft b49a143
export API
annelo-msft 74058d9
Merge remote-tracking branch 'upstream/main' into jsondata-perfexp1
annelo-msft bb44811
Merge remote-tracking branch 'upstream/main' into jsondata-perfexp1
annelo-msft a436b30
Add DocumentSentiment large JSON sample and add parse and read benchm…
annelo-msft 5673466
initial attempt to move to JsonElement
annelo-msft 3c35174
some fixes
annelo-msft 136c6c3
updates
annelo-msft 61289a7
nit
annelo-msft 7843b4e
Merge remote-tracking branch 'upstream/main' into jsondata-perfexp1
annelo-msft e1be79b
nits
annelo-msft adc22ec
Merge remote-tracking branch 'upstream/main' into jsondata-perfexp1
annelo-msft eefa39a
starting to experiment with changelist approach
annelo-msft 4a376f1
an approach to object assignment
annelo-msft fbe0894
start working with array elements
annelo-msft 1e8d2eb
saving changes from before break...
annelo-msft 499a72b
Merge remote-tracking branch 'upstream/main' into jsondata-perfexp1
annelo-msft 3a20c5d
sm formatting pr fb
annelo-msft 49f089a
ApiView FB per generality of DynamicData
annelo-msft 878e431
nits
annelo-msft 1bfe071
small thoughts
annelo-msft a694231
first steps toward abstracting ChangeTracker
annelo-msft 82b5316
In flight changes while implementing AddPropertyToObject
annelo-msft c126dca
adding tests with simple modifications to structural elements
annelo-msft 7094bfb
Merge remote-tracking branch 'upstream/main' into jsondata-perfexp1
annelo-msft e3b313b
Implementing WriteTo()
annelo-msft 937a224
Added nested objects
annelo-msft aa9c666
refactor
annelo-msft 632985e
missed changes
annelo-msft 934ee4c
In TDD spirit, add failing WriteTo test
annelo-msft 1dd1ef8
Test passes
annelo-msft 9f28d81
quick refactor
annelo-msft 26bb1b7
update add property test
annelo-msft 21c1ab2
Merge remote-tracking branch 'upstream/main' into core-jsondata-write…
annelo-msft ac891c5
Update WriteTo to handle property additions at the root element
annelo-msft 5f34ffb
Handle property additions on arbitrary objects
annelo-msft 902df1c
Merge remote-tracking branch 'upstream/main' into jsondata-perfexp1
annelo-msft 63f1e6d
handle standard property removals
annelo-msft 78babed
Support Replace with object
annelo-msft 0b21508
Support Replace with object
annelo-msft 48a9fee
refactor where we serialize structural changes to centralize
annelo-msft 9d0039c
Implement reference semantics for JsonDataElement
annelo-msft 53dd7e9
experiment with checking ancestors for structural changes.
annelo-msft 54c8c08
Update WriteTo to handle structural changes.
annelo-msft dd773d7
add high water mark logic
annelo-msft e37981d
add validation to all reads and add failing test for ignoring pre-str…
annelo-msft 161d578
Incorporate HWM logic in all change lookups; make PriorChangeToReplac…
annelo-msft 6d48737
remove double-check of object and array elements
annelo-msft e325e32
some tidy up
annelo-msft 7ef3d9a
Merge remote-tracking branch 'upstream/main' into jsondata-perfexp1
annelo-msft 8af0eb2
Reimplement GetProperty in terms of TryGetProperty()
annelo-msft 7327d16
Handle WriteTo for structural changes.
annelo-msft 336b531
add some tests of structural changes
annelo-msft 3c5032d
refactor tests
annelo-msft 6954115
Bug fix to WriteTo for bools and test refactoring
annelo-msft 3b84c28
bug fix to WriteTo for booleans
annelo-msft 2b13efb
Add support for nulls and fix ToLower() bug
annelo-msft 62671ed
add perf benchmark prior to working on perf
annelo-msft 1c3f34b
missed file
annelo-msft df84bc0
update Parse() to use Memory<byte>
annelo-msft f2b94d8
move subclasses to separate files for ease of reading
annelo-msft 5097fd7
refactor to add dynamic layer
annelo-msft f2bd846
Add cast operators to JsonDataElement to pass dynamic GetIntProperty …
annelo-msft b663856
Add support for dynamic nested property access
annelo-msft cdad822
enable set via dynamic layer
annelo-msft 68827c3
Enable setting nested properties via dynamic layer
annelo-msft 5ba740e
nit
annelo-msft 70e114a
Merge remote-tracking branch 'upstream/main' into jsondata-perfexp1
annelo-msft 77bf7e0
Renames prior to dynamic refactor
annelo-msft d013932
start adding separate dynamic layer
annelo-msft c45eaa8
Move dynamic meta object to dyanmic types.
annelo-msft 42543f3
API updates
annelo-msft 70eee2b
todos and nits
annelo-msft ff6e123
rename test to match types
annelo-msft e587339
remove outer DynamicJson class
annelo-msft f43d141
add BindConvert to dynamic layer
annelo-msft eceaab5
Add BindGetIndex to dynamic layer
annelo-msft 8d4e6ab
save multitarget attempt
annelo-msft 049a820
Add target frameworks to Experimental to allow ifdefs by target frame…
annelo-msft 4fd4f16
Merge remote-tracking branch 'upstream/main' into jsondata-perfexp1
annelo-msft e3d69c7
Merge branch 'temp_multitarget' into jsondata-perfexp1
annelo-msft 48b0d04
PR feedback; use more efficient Deserialize call when available in Co…
annelo-msft b69bec5
refactor per PR fb
annelo-msft f5d701e
Add BindSetIndex to dynamic layer
annelo-msft 5bfd5af
Fix bug in mutable ToString() where changes to descendants weren't ac…
annelo-msft 20cd72e
Fix WriteTo() bug for string elements and add failing test for handli…
annelo-msft d9c04ea
Handle null values
annelo-msft 3994769
PR fb
annelo-msft 99ce0fd
Add support for floats and longs
annelo-msft 74ccb91
remove HasValue, per pr fb
annelo-msft 5b90d6e
export API changes
annelo-msft e905fb0
Support adding properties on dynamic member assignments
annelo-msft 2858cba
reshuffle methods around
annelo-msft 9a9d31d
some changes before adding support for IEnumerable
annelo-msft 7edadb4
Add ArrayEnumerator to MutableJsonElement
annelo-msft fa3db81
missed file; dynamic portion not complete
annelo-msft 5a6ff95
Bug fix to dynamic ArrayEnumerator; foreach over array now passes
annelo-msft 72dafd9
export API and misc test updates
annelo-msft 813d95f
nit; cleanup
annelo-msft 1e0244e
Make MutableJsonDocument serializable
annelo-msft 3fe0203
Make DynamicJson serializable; enable reference semantics for added p…
annelo-msft 42578cb
Make tests pass for net6.0 & net7.0; will address net461 separately
annelo-msft be7efb4
Fixes for some net461 issues
annelo-msft 0640de2
Fix Add and Set property for net461
annelo-msft 1e7b9fc
Work around BindBinaryOperation in net461; move inline TODOs to GH issue
annelo-msft f84eed4
Export API
annelo-msft a29bf14
Merge remote-tracking branch 'upstream/main' into jsondata-perfexp1
annelo-msft File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.