fix: xpath fails to parse json array elements#18179
Open
majiayu000 wants to merge 1 commit intoinfluxdata:masterfrom
Open
fix: xpath fails to parse json array elements#18179majiayu000 wants to merge 1 commit intoinfluxdata:masterfrom
majiayu000 wants to merge 1 commit intoinfluxdata:masterfrom
Conversation
The xpath_json parser previously failed to correctly parse JSON array elements using XPath expressions like //array[1]/field. This was because the underlying jsonquery library treats arrays as single container nodes with unnamed children, making it impossible to index into arrays directly. This change modifies the JSON document handler to: - Convert JSON to CBOR format internally - Use cborquery for parsing, which correctly handles array elements as named siblings that can be indexed with XPath expressions The fix enables users to access JSON array elements using intuitive XPath syntax like //nvme_namespaces[1]/capacity/bytes instead of requiring the workaround //*[local-name()='nvme_namespaces']/*[1]/capacity/bytes. Note: This is a breaking change for some XPath query patterns: - Array selection: Use //array instead of //array/* to select elements - String representation of objects/arrays differs from JSON format Fixes influxdata#18145 Signed-off-by: majiayu000 <1835304752@qq.com>
Contributor
|
Thanks so much for the pull request! |
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.
Fixes #18145
Changes
//array[1]instead of//array/*[1])Breaking Changes
//arrayinstead of//array/*to select elements