Skip to content

Support serialising/deserializing the JSONPath class#2625

Merged
jviotti merged 1 commit into
mainfrom
json-path-to-json
Jul 10, 2026
Merged

Support serialising/deserializing the JSONPath class#2625
jviotti merged 1 commit into
mainfrom
json-path-to-json

Conversation

@jviotti

@jviotti jviotti commented Jul 10, 2026

Copy link
Copy Markdown
Member

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Review in cubic

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@augmentcode

augmentcode Bot commented Jul 10, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR adds JSON (de)serialization support for the RFC 9535 JSONPath query type.

Changes:

  • Stores the original JSONPath expression string inside JSONPath for later serialization
  • Adds JSONPath::to_json() to serialize a query as a JSON string
  • Adds JSONPath::from_json(const JSON&) to parse a query from a JSON string and return std::optional on failure
  • Updates the main constructor to preserve the input expression alongside the compiled query
  • Adds new unit tests covering valid/invalid inputs and round-tripping through to_json/from_json

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestion posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

-> std::optional<JSONPath>;

private:
JSON::String expression_;

@augmentcode augmentcode Bot Jul 10, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding the new expression_ data member to the exported JSONPath class changes its size/layout, so if this project targets C++ ABI stability this is an ABI-breaking change that may need a version/SONAME bump (or similar mitigation).

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Details
Benchmark suite Current: 8b491f9 Previous: b6461e6 Ratio
JOSE_VerifySignature_RS256 24400.392025737165 ns/iter 18851.701196524544 ns/iter 1.29
JOSE_VerifySignature_ES512 642966.9348623533 ns/iter 421221.5936374649 ns/iter 1.53
GZIP_Compress_ISO_Language_Set_3_Locations 39263103.83333328 ns/iter 23497218.499998476 ns/iter 1.67
GZIP_Decompress_ISO_Language_Set_3_Locations 4034313.356321778 ns/iter 3173528.572727429 ns/iter 1.27
GZIP_Compress_ISO_Language_Set_3_Schema 2283175.446254247 ns/iter 1596630.1917808687 ns/iter 1.43
GZIP_Decompress_ISO_Language_Set_3_Schema 277369.40157806774 ns/iter 296751.4353191349 ns/iter 0.93
HTML_Build_Table_100000 72050425.89999948 ns/iter 41734144.68750281 ns/iter 1.73
HTML_Render_Table_100000 1983974.985755128 ns/iter 2735812.0664060516 ns/iter 0.73
JSONLD_Catalog_Annotation_List_Populate 1372171.5714284854 ns/iter 1036891.8874074654 ns/iter 1.32
JSONLD_Catalog_Materialize 6838995.50980369 ns/iter 5440190.325581777 ns/iter 1.26
JSONL_Parse_Large 12831711.074073626 ns/iter 10443324.373135742 ns/iter 1.23
JSONL_Parse_Large_GZIP 14302766.816327602 ns/iter 11551465.449999418 ns/iter 1.24
URITemplateRouter_Create 30295.049711378044 ns/iter 22898.194070871254 ns/iter 1.32
URITemplateRouter_Match 146.55619649355666 ns/iter 141.88064100826332 ns/iter 1.03
URITemplateRouter_Match_BasePath 173.59409097617066 ns/iter 159.6194291939955 ns/iter 1.09
URITemplateRouterView_Restore 9850.777515364121 ns/iter 2898.405366652874 ns/iter 3.40
URITemplateRouterView_Match 126.19561101817708 ns/iter 98.51134670307219 ns/iter 1.28
URITemplateRouterView_Match_BasePath 144.47737892306964 ns/iter 111.96228353914289 ns/iter 1.29
URITemplateRouterView_Arguments 470.59552407037137 ns/iter 384.1613678434174 ns/iter 1.22
JSONPath_Descendant_Filter_Nested 1815.526673979992 ns/iter 1159.7918279519236 ns/iter 1.57
Pointer_Object_Traverse 32.28218623091304 ns/iter 23.7062386413754 ns/iter 1.36
Pointer_Object_Try_Traverse 26.063899917924818 ns/iter 21.615603861733806 ns/iter 1.21
Pointer_Push_Back_Pointer_To_Weak_Pointer 166.26617972441224 ns/iter 124.73591302164436 ns/iter 1.33
Pointer_Walker_Schema_ISO_Language 2901897.1722689075 ns/iter 2754532.917682665 ns/iter 1.05
Pointer_Maybe_Tracked_Deeply_Nested/0 1934296.262430829 ns/iter 1687667.3807229898 ns/iter 1.15
Pointer_Maybe_Tracked_Deeply_Nested/1 1641020.2833723743 ns/iter 1477574.2552742274 ns/iter 1.11
Pointer_Position_Tracker_Get_Deeply_Nested 485.4360296301936 ns/iter 444.45347909461657 ns/iter 1.09
JSON_Array_Of_Objects_Unique 440.35971200864293 ns/iter 339.48755861951884 ns/iter 1.30
JSON_Parse_1 9852.2630375955 ns/iter 7617.633869070519 ns/iter 1.29
JSON_Parse_Real 7866.7610696760485 ns/iter 5939.707386219175 ns/iter 1.32
JSON_Parse_Decimal 11203.930565543298 ns/iter 8346.341461381824 ns/iter 1.34
JSON_Parse_Schema_ISO_Language 6852018.549020436 ns/iter 5347280.415384585 ns/iter 1.28
JSON_Parse_Integer 5838.854969650085 ns/iter 4108.83139582645 ns/iter 1.42
JSON_Parse_String_NonSSO_Plain 12356.211582515987 ns/iter 9089.579909803817 ns/iter 1.36
JSON_Parse_String_SSO_Plain 4973.729132407248 ns/iter 3891.6102622270714 ns/iter 1.28
JSON_Parse_String_Escape_Heavy 24125.875982084435 ns/iter 20111.48683304709 ns/iter 1.20
JSON_Parse_Object_Short_Keys 14463.092895161657 ns/iter 10271.275975892086 ns/iter 1.41
JSON_Parse_Object_Scalar_Properties 7706.462531219652 ns/iter 5231.912021193791 ns/iter 1.47
JSON_Parse_Object_Array_Properties 13219.657734904325 ns/iter 9506.895589949947 ns/iter 1.39
JSON_Parse_Object_Object_Properties 12573.707608540804 ns/iter 9487.862155150273 ns/iter 1.33
JSON_Parse_Nested_Containers 102547.37576300047 ns/iter 79235.69710014113 ns/iter 1.29
JSON_From_String_Copy 19.7734823495282 ns/iter 15.389251464731595 ns/iter 1.28
JSON_From_String_Temporary 16.57611367552115 ns/iter 12.58912063523191 ns/iter 1.32
JSON_Number_To_Double 20.053677772706518 ns/iter 21.63526338245299 ns/iter 0.93
JSON_Object_At_Last_Key/8 6.335233489743598 ns/iter 5.607043335203787 ns/iter 1.13
JSON_Object_At_Last_Key/32 23.5902091907174 ns/iter 18.996147378336403 ns/iter 1.24
JSON_Object_At_Last_Key/128 91.18632223297993 ns/iter 70.74344912092698 ns/iter 1.29
JSON_Object_At_Last_Key/512 377.94848114649415 ns/iter 229.47728652363972 ns/iter 1.65
JSON_Fast_Hash_Helm_Chart_Lock 80.27853467643538 ns/iter 62.66953739742585 ns/iter 1.28
JSON_Equality_Helm_Chart_Lock 153.22468490777305 ns/iter 111.84225590997566 ns/iter 1.37
JSON_Divisible_By_Decimal 233.725885115838 ns/iter 203.51186797651653 ns/iter 1.15
JSON_String_Equal/10 5.406902387586282 ns/iter 4.3437786380132986 ns/iter 1.24
JSON_String_Equal/100 6.1114160752738815 ns/iter 12.297981585004504 ns/iter 0.50
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7111008180109064 ns/iter 0.8048526768066698 ns/iter 0.88
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 21.986262408732976 ns/iter 14.840008560656742 ns/iter 1.48
JSON_String_Fast_Hash/10 2.5492566987500376 ns/iter 2.9067723332886097 ns/iter 0.88
JSON_String_Fast_Hash/100 2.549526677845696 ns/iter 2.904301570324401 ns/iter 0.88
JSON_String_Key_Hash/10 1.4065294373422617 ns/iter 1.4000678759575873 ns/iter 1.00
JSON_String_Key_Hash/100 14.759678707455134 ns/iter 11.214468312808359 ns/iter 1.32
JSON_Object_Defines_Miss_Same_Length 3.1653551319755246 ns/iter 2.5951016927397594 ns/iter 1.22
JSON_Object_Defines_Miss_Too_Small 3.516324404961436 ns/iter 2.8515618384065795 ns/iter 1.23
JSON_Object_Defines_Miss_Too_Large 3.1650692709303168 ns/iter 2.8149596059830015 ns/iter 1.12
Regex_Lower_S_Or_Upper_S_Asterisk 0.7034242537963487 ns/iter 0.8446932599010806 ns/iter 0.83
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.054859559897291 ns/iter 0.8437814180135789 ns/iter 1.25
Regex_Period_Asterisk 0.7034801845720873 ns/iter 0.883988412803049 ns/iter 0.80
Regex_Group_Period_Asterisk_Group 1.0549454631607977 ns/iter 0.8439052355572431 ns/iter 1.25
Regex_Period_Plus 0.7032838374980103 ns/iter 0.8445356991589091 ns/iter 0.83
Regex_Period 1.0555740248311023 ns/iter 0.8421977148557377 ns/iter 1.25
Regex_Caret_Period_Plus_Dollar 0.7033593085457134 ns/iter 0.8529900233061554 ns/iter 0.82
Regex_Caret_Group_Period_Plus_Group_Dollar 1.0551796713530999 ns/iter 0.8510377612832155 ns/iter 1.24
Regex_Caret_Period_Asterisk_Dollar 0.7032233299097588 ns/iter 0.8437070021323769 ns/iter 0.83
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.0549318904825238 ns/iter 0.846182422810266 ns/iter 1.25
Regex_Caret_X_Hyphen 3.515633363639794 ns/iter 2.806202599214112 ns/iter 1.25
Regex_Period_Md_Dollar 33.3883524280111 ns/iter 15.71524893876563 ns/iter 2.12
Regex_Caret_Slash_Period_Asterisk 3.867173920994684 ns/iter 2.809072277163218 ns/iter 1.38
Regex_Caret_Period_Range_Dollar 1.760117204626081 ns/iter 1.3995591623528958 ns/iter 1.26
Regex_Nested_Backtrack 42.0964732133784 ns/iter 30.338464979488116 ns/iter 1.39

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Details
Benchmark suite Current: 8b491f9 Previous: b6461e6 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.4840610760243034 ns/iter 2.2273295028422866 ns/iter 1.12
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.461445929764061 ns/iter 2.1919515542330106 ns/iter 1.12
Regex_Period_Asterisk 2.46224736991478 ns/iter 2.1985665561737506 ns/iter 1.12
Regex_Group_Period_Asterisk_Group 2.4624749213343344 ns/iter 2.2061768610734975 ns/iter 1.12
Regex_Period_Plus 3.8666025690099524 ns/iter 3.1149230682932614 ns/iter 1.24
Regex_Period 3.871775460347 ns/iter 3.1148502054390845 ns/iter 1.24
Regex_Caret_Period_Plus_Dollar 3.515122679250219 ns/iter 2.811344420711071 ns/iter 1.25
Regex_Caret_Group_Period_Plus_Group_Dollar 3.5158734535606846 ns/iter 2.8031408828650486 ns/iter 1.25
Regex_Caret_Period_Asterisk_Dollar 2.8134585693767593 ns/iter 3.430897712141701 ns/iter 0.82
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.8137998395321677 ns/iter 3.425875684199286 ns/iter 0.82
Regex_Caret_X_Hyphen 6.68725676684493 ns/iter 5.300451629430009 ns/iter 1.26
Regex_Period_Md_Dollar 26.348867172385088 ns/iter 28.227333104244835 ns/iter 0.93
Regex_Caret_Slash_Period_Asterisk 7.73568580572901 ns/iter 6.228712494198236 ns/iter 1.24
Regex_Caret_Period_Range_Dollar 4.569258008265862 ns/iter 2.8049257623553574 ns/iter 1.63
Regex_Nested_Backtrack 38.174010986044735 ns/iter 39.24022629097472 ns/iter 0.97
JSON_Array_Of_Objects_Unique 471.2167737953226 ns/iter 423.73355640696946 ns/iter 1.11
JSON_Parse_1 4719.50294002617 ns/iter 4852.515767767187 ns/iter 0.97
JSON_Parse_Real 5374.78620652407 ns/iter 5331.036583153404 ns/iter 1.01
JSON_Parse_Decimal 7727.87818569602 ns/iter 7597.9001767735335 ns/iter 1.02
JSON_Parse_Schema_ISO_Language 3555961.4517766475 ns/iter 3467893.8861382916 ns/iter 1.03
JSON_Parse_Integer 4085.037553591687 ns/iter 3833.898006404332 ns/iter 1.07
JSON_Parse_String_NonSSO_Plain 5017.942829999811 ns/iter 5276.591268172685 ns/iter 0.95
JSON_Parse_String_SSO_Plain 2761.9111011953964 ns/iter 2809.935613739166 ns/iter 0.98
JSON_Parse_String_Escape_Heavy 14443.861938758695 ns/iter 14415.850539136187 ns/iter 1.00
JSON_Parse_Object_Short_Keys 7843.524817297304 ns/iter 7818.172733570453 ns/iter 1.00
JSON_Parse_Object_Scalar_Properties 3941.594156923767 ns/iter 3973.5249747170556 ns/iter 0.99
JSON_Parse_Object_Array_Properties 5413.742264372678 ns/iter 5453.548474905989 ns/iter 0.99
JSON_Parse_Object_Object_Properties 5454.845848234605 ns/iter 5434.610361909541 ns/iter 1.00
JSON_Parse_Nested_Containers 43937.34086177349 ns/iter 44576.895769627336 ns/iter 0.99
JSON_From_String_Copy 20.746751634021543 ns/iter 19.6365289878257 ns/iter 1.06
JSON_From_String_Temporary 19.0430214341837 ns/iter 17.468360984696844 ns/iter 1.09
JSON_Number_To_Double 22.571431661486347 ns/iter 23.11056660140514 ns/iter 0.98
JSON_Object_At_Last_Key/8 6.329733579404088 ns/iter 5.923540742848463 ns/iter 1.07
JSON_Object_At_Last_Key/32 23.544199379332944 ns/iter 21.521762127783443 ns/iter 1.09
JSON_Object_At_Last_Key/128 91.05927089276365 ns/iter 87.52907554836565 ns/iter 1.04
JSON_Object_At_Last_Key/512 380.4840309182031 ns/iter 403.1929543560848 ns/iter 0.94
JSON_Fast_Hash_Helm_Chart_Lock 63.05288324488905 ns/iter 60.473908918567524 ns/iter 1.04
JSON_Equality_Helm_Chart_Lock 158.02194487443228 ns/iter 163.10240234527362 ns/iter 0.97
JSON_Divisible_By_Decimal 251.1867758935706 ns/iter 265.66159823939654 ns/iter 0.95
JSON_String_Equal/10 5.6298416280528585 ns/iter 6.8556513135212604 ns/iter 0.82
JSON_String_Equal/100 6.331693408644956 ns/iter 6.548778841114521 ns/iter 0.97
JSON_String_Equal_Small_By_Perfect_Hash/10 1.0539825441165152 ns/iter 0.936269132887025 ns/iter 1.13
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.334532750415537 ns/iter 10.281715134596455 ns/iter 1.20
JSON_String_Fast_Hash/10 2.113708746162673 ns/iter 2.491400758809272 ns/iter 0.85
JSON_String_Fast_Hash/100 2.1095730503834997 ns/iter 2.4914773930237906 ns/iter 0.85
JSON_String_Key_Hash/10 2.8126355648682306 ns/iter 2.494543269882218 ns/iter 1.13
JSON_String_Key_Hash/100 7.731783635686182 ns/iter 6.538987749247718 ns/iter 1.18
JSON_Object_Defines_Miss_Same_Length 2.9681236899555477 ns/iter 2.713399763371421 ns/iter 1.09
JSON_Object_Defines_Miss_Too_Small 2.953394599290932 ns/iter 2.892815579541539 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Large 3.2061605880343085 ns/iter 3.178793051179369 ns/iter 1.01
Pointer_Object_Traverse 30.721387153647935 ns/iter 28.90477656462574 ns/iter 1.06
Pointer_Object_Try_Traverse 32.9529097890029 ns/iter 31.099786946993948 ns/iter 1.06
Pointer_Push_Back_Pointer_To_Weak_Pointer 167.2945235766941 ns/iter 174.53067514146244 ns/iter 0.96
Pointer_Walker_Schema_ISO_Language 2796094.0163935544 ns/iter 2703432.7120622685 ns/iter 1.03
Pointer_Maybe_Tracked_Deeply_Nested/0 1245089.4283186253 ns/iter 1245957.2931653946 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/1 1619106.305555449 ns/iter 1611330.2529000703 ns/iter 1.00
Pointer_Position_Tracker_Get_Deeply_Nested 742.7187587394177 ns/iter 701.0254531807972 ns/iter 1.06
JSONPath_Descendant_Filter_Nested 1588.6903276149048 ns/iter 1596.485879026559 ns/iter 1.00
URITemplateRouter_Create 30093.4151072965 ns/iter 32569.87166372217 ns/iter 0.92
URITemplateRouter_Match 174.02567447739756 ns/iter 180.9693468491581 ns/iter 0.96
URITemplateRouter_Match_BasePath 204.78128184740842 ns/iter 204.17081899503933 ns/iter 1.00
URITemplateRouterView_Restore 9905.857729442607 ns/iter 8653.31662199687 ns/iter 1.14
URITemplateRouterView_Match 144.92682733185933 ns/iter 145.1371890486878 ns/iter 1.00
URITemplateRouterView_Match_BasePath 165.03404759915284 ns/iter 166.1850565281552 ns/iter 0.99
URITemplateRouterView_Arguments 449.8546953030277 ns/iter 432.8472352187237 ns/iter 1.04
JSONL_Parse_Large 9175187.03947376 ns/iter 9665902.164383562 ns/iter 0.95
JSONL_Parse_Large_GZIP 10806206.615384676 ns/iter 11195308.063491443 ns/iter 0.97
JSONLD_Catalog_Annotation_List_Populate 1274480.6539161159 ns/iter 1248214.6376554638 ns/iter 1.02
JSONLD_Catalog_Materialize 4413600.064102259 ns/iter 4245722.951218923 ns/iter 1.04
HTML_Build_Table_100000 69895131.90000024 ns/iter 67652600.50000279 ns/iter 1.03
HTML_Render_Table_100000 5562912.200000027 ns/iter 5309952.763358357 ns/iter 1.05
GZIP_Compress_ISO_Language_Set_3_Locations 35525819.34999921 ns/iter 33399966.047617067 ns/iter 1.06
GZIP_Decompress_ISO_Language_Set_3_Locations 4345806.732919543 ns/iter 4271672.884146522 ns/iter 1.02
GZIP_Compress_ISO_Language_Set_3_Schema 2118453.1963745635 ns/iter 1886788.2156333101 ns/iter 1.12
GZIP_Decompress_ISO_Language_Set_3_Schema 275780.49292451964 ns/iter 361254.3290288992 ns/iter 0.76
JOSE_VerifySignature_RS256 63946.15514565111 ns/iter 60288.6526750445 ns/iter 1.06
JOSE_VerifySignature_ES512 2675937.574712532 ns/iter 2486344.471631112 ns/iter 1.08

This comment was automatically generated by workflow using github-action-benchmark.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 4 files

Re-trigger cubic

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Details
Benchmark suite Current: 8b491f9 Previous: b6461e6 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 5.473983035714574 ns/iter 4.287702954085208 ns/iter 1.28
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 5.032144000000471 ns/iter 3.8432282366075907 ns/iter 1.31
Regex_Period_Asterisk 5.048327999999174 ns/iter 3.843621957422098 ns/iter 1.31
Regex_Group_Period_Asterisk_Group 5.022809821428252 ns/iter 3.83995552885746 ns/iter 1.31
Regex_Period_Plus 5.027279999999337 ns/iter 3.5661910658561715 ns/iter 1.41
Regex_Period 5.3724959999999555 ns/iter 3.6938667791179123 ns/iter 1.45
Regex_Caret_Period_Plus_Dollar 5.0799240000003465 ns/iter 3.5708278507665154 ns/iter 1.42
Regex_Caret_Group_Period_Plus_Group_Dollar 5.396500892857148 ns/iter 3.6647573603448023 ns/iter 1.47
Regex_Caret_Period_Asterisk_Dollar 5.331434000000854 ns/iter 3.9042247080785324 ns/iter 1.37
Regex_Caret_Group_Period_Asterisk_Group_Dollar 5.017071999999416 ns/iter 3.8392864217154767 ns/iter 1.31
Regex_Caret_X_Hyphen 8.467982142857773 ns/iter 6.29306160714346 ns/iter 1.35
Regex_Period_Md_Dollar 44.94290000000234 ns/iter 52.270850000002156 ns/iter 0.86
Regex_Caret_Slash_Period_Asterisk 7.85894977678606 ns/iter 5.826113392857784 ns/iter 1.35
Regex_Caret_Period_Range_Dollar 5.979561607143223 ns/iter 4.1480440848211995 ns/iter 1.44
Regex_Nested_Backtrack 56.04606249999985 ns/iter 57.74183928571525 ns/iter 0.97
JSON_Array_Of_Objects_Unique 586.8616964286437 ns/iter 520.0452000000269 ns/iter 1.13
JSON_Parse_1 8854.844844443807 ns/iter 7174.5482142862975 ns/iter 1.23
JSON_Parse_Real 16144.446428571413 ns/iter 13951.850214954513 ns/iter 1.16
JSON_Parse_Decimal 12092.984374998394 ns/iter 8939.038665005417 ns/iter 1.35
JSON_Parse_Schema_ISO_Language 7506233.333333512 ns/iter 6748617.857143455 ns/iter 1.11
JSON_Parse_Integer 6049.194642856597 ns/iter 4535.1974003605665 ns/iter 1.33
JSON_Parse_String_NonSSO_Plain 7803.001116070923 ns/iter 6111.811000000671 ns/iter 1.28
JSON_Parse_String_SSO_Plain 3739.8140494806657 ns/iter 2864.096846385154 ns/iter 1.31
JSON_Parse_String_Escape_Heavy 21531.024999998037 ns/iter 18915.78764096043 ns/iter 1.14
JSON_Parse_Object_Short_Keys 16538.591345574547 ns/iter 10223.078124999674 ns/iter 1.62
JSON_Parse_Object_Scalar_Properties 8877.800892857327 ns/iter 5373.286000000235 ns/iter 1.65
JSON_Parse_Object_Array_Properties 13385.616135642264 ns/iter 8883.310267856968 ns/iter 1.51
JSON_Parse_Object_Object_Properties 13154.176785714559 ns/iter 9584.856764032067 ns/iter 1.37
JSON_Parse_Nested_Containers 79345.97098213964 ns/iter 64995.90178571729 ns/iter 1.22
JSON_From_String_Copy 64.13695535713819 ns/iter 51.118270000006305 ns/iter 1.25
JSON_From_String_Temporary 57.84452678571686 ns/iter 63.47545535714768 ns/iter 0.91
JSON_Number_To_Double 122.3095123969039 ns/iter 106.70284345077752 ns/iter 1.15
JSON_Object_At_Last_Key/8 7.240084821427827 ns/iter 6.728748214285929 ns/iter 1.08
JSON_Object_At_Last_Key/32 24.122340132561114 ns/iter 19.38532749176905 ns/iter 1.24
JSON_Object_At_Last_Key/128 89.52359868199012 ns/iter 74.9427823686198 ns/iter 1.19
JSON_Object_At_Last_Key/512 424.7538810999518 ns/iter 329.4331249999719 ns/iter 1.29
JSON_Fast_Hash_Helm_Chart_Lock 103.25846875000266 ns/iter 88.1281361607224 ns/iter 1.17
JSON_Equality_Helm_Chart_Lock 211.49931250000975 ns/iter 158.786919642852 ns/iter 1.33
JSON_Divisible_By_Decimal 299.0529688556883 ns/iter 285.13143816379153 ns/iter 1.05
JSON_String_Equal/10 10.372951562500177 ns/iter 7.814969866072171 ns/iter 1.33
JSON_String_Equal/100 11.85150892857223 ns/iter 8.78544772863745 ns/iter 1.35
JSON_String_Equal_Small_By_Perfect_Hash/10 2.5164650000005753 ns/iter 1.6463120546737526 ns/iter 1.53
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 15.043352678567599 ns/iter 11.447401562499238 ns/iter 1.31
JSON_String_Fast_Hash/10 6.63261785714196 ns/iter 4.952896999999439 ns/iter 1.34
JSON_String_Fast_Hash/100 6.622791964285771 ns/iter 5.093026675243875 ns/iter 1.30
JSON_String_Key_Hash/10 5.3404678571423245 ns/iter 3.8637003348210692 ns/iter 1.38
JSON_String_Key_Hash/100 11.889109375001539 ns/iter 8.495119419644123 ns/iter 1.40
JSON_Object_Defines_Miss_Same_Length 3.776021778971589 ns/iter 3.006725892857633 ns/iter 1.26
JSON_Object_Defines_Miss_Too_Small 4.083898935863389 ns/iter 3.3969281249994765 ns/iter 1.20
JSON_Object_Defines_Miss_Too_Large 3.7757705289712713 ns/iter 2.9918668040279064 ns/iter 1.26
Pointer_Object_Traverse 70.30505357142098 ns/iter 50.63855999999305 ns/iter 1.39
Pointer_Object_Try_Traverse 71.28690848214247 ns/iter 52.70637000000988 ns/iter 1.35
Pointer_Push_Back_Pointer_To_Weak_Pointer 170.32674107144072 ns/iter 125.02366071430515 ns/iter 1.36
Pointer_Walker_Schema_ISO_Language 13636343.999996824 ns/iter 9677420.312499408 ns/iter 1.41
Pointer_Maybe_Tracked_Deeply_Nested/0 2724125.446429225 ns/iter 1937846.9565214363 ns/iter 1.41
Pointer_Maybe_Tracked_Deeply_Nested/1 3889311.2299456093 ns/iter 2973212.2881355127 ns/iter 1.31
Pointer_Position_Tracker_Get_Deeply_Nested 573.0176339286329 ns/iter 471.5800892857455 ns/iter 1.22
JSONPath_Descendant_Filter_Nested 2406.937187500091 ns/iter 1985.923826718021 ns/iter 1.21
URITemplateRouter_Create 42316.65505973318 ns/iter 30467.886678823517 ns/iter 1.39
URITemplateRouter_Match 235.20646928495606 ns/iter 172.79283685650847 ns/iter 1.36
URITemplateRouter_Match_BasePath 266.5819999999387 ns/iter 203.67235474672398 ns/iter 1.31
URITemplateRouterView_Restore 32986.36607143278 ns/iter 18499.153563873584 ns/iter 1.78
URITemplateRouterView_Match 180.62570362728428 ns/iter 134.93440245828504 ns/iter 1.34
URITemplateRouterView_Match_BasePath 205.74565152921974 ns/iter 151.22406249997562 ns/iter 1.36
URITemplateRouterView_Arguments 534.7080999999889 ns/iter 457.45125023630703 ns/iter 1.17
JSONL_Parse_Large 33155976.1904741 ns/iter 25042257.14285927 ns/iter 1.32
JSONL_Parse_Large_GZIP 33578535.00000374 ns/iter 25814803.846156582 ns/iter 1.30
JSONLD_Catalog_Annotation_List_Populate 2644614.056224961 ns/iter 2094522.812500088 ns/iter 1.26
JSONLD_Catalog_Materialize 7810173.333334408 ns/iter 6425460.714286909 ns/iter 1.22
HTML_Build_Table_100000 88417844.44444379 ns/iter 71496018.18181592 ns/iter 1.24
HTML_Render_Table_100000 7960608.888887085 ns/iter 6773983.333333592 ns/iter 1.18
GZIP_Compress_ISO_Language_Set_3_Locations 36388131.57894411 ns/iter 29460607.692306858 ns/iter 1.24
GZIP_Decompress_ISO_Language_Set_3_Locations 10135071.999999734 ns/iter 7908103.33333209 ns/iter 1.28
GZIP_Compress_ISO_Language_Set_3_Schema 2135651.3043475137 ns/iter 1938097.7886980125 ns/iter 1.10
GZIP_Decompress_ISO_Language_Set_3_Schema 616683.4821428325 ns/iter 471107.05244117265 ns/iter 1.31
JOSE_VerifySignature_RS256 21440.581249997595 ns/iter 18431.64731014135 ns/iter 1.16
JOSE_VerifySignature_ES512 1548121.6517854484 ns/iter 1190660.89285736 ns/iter 1.30

This comment was automatically generated by workflow using github-action-benchmark.

@jviotti jviotti merged commit 2060a4f into main Jul 10, 2026
11 of 12 checks passed
@jviotti jviotti deleted the json-path-to-json branch July 10, 2026 17:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant