--- source: crates/biome_json_parser/tests/spec_test.rs expression: snapshot --- ## Input ```json {"a":"b"}#{} ``` ## AST ``` JsonRoot { bom_token: missing (optional), value: JsonArrayValue { l_brack_token: missing (required), elements: JsonArrayElementList [ JsonObjectValue { l_curly_token: L_CURLY@0..1 "{" [] [], json_member_list: JsonMemberList [ JsonMember { name: JsonMemberName { value_token: JSON_STRING_LITERAL@1..4 "\"a\"" [] [], }, colon_token: COLON@4..5 ":" [] [], value: JsonStringValue { value_token: JSON_STRING_LITERAL@5..8 "\"b\"" [] [], }, }, ], r_curly_token: R_CURLY@8..9 "}" [] [], }, missing separator, JsonBogusValue { items: [ ERROR_TOKEN@9..10 "#" [] [], ], }, missing separator, JsonObjectValue { l_curly_token: L_CURLY@10..11 "{" [] [], json_member_list: JsonMemberList [], r_curly_token: R_CURLY@11..12 "}" [] [], }, ], r_brack_token: missing (required), }, eof_token: EOF@12..12 "" [] [], } ``` ## CST ``` 0: JSON_ROOT@0..12 0: (empty) 1: JSON_ARRAY_VALUE@0..12 0: (empty) 1: JSON_ARRAY_ELEMENT_LIST@0..12 0: JSON_OBJECT_VALUE@0..9 0: L_CURLY@0..1 "{" [] [] 1: JSON_MEMBER_LIST@1..8 0: JSON_MEMBER@1..8 0: JSON_MEMBER_NAME@1..4 0: JSON_STRING_LITERAL@1..4 "\"a\"" [] [] 1: COLON@4..5 ":" [] [] 2: JSON_STRING_VALUE@5..8 0: JSON_STRING_LITERAL@5..8 "\"b\"" [] [] 2: R_CURLY@8..9 "}" [] [] 1: (empty) 2: JSON_BOGUS_VALUE@9..10 0: ERROR_TOKEN@9..10 "#" [] [] 3: (empty) 4: JSON_OBJECT_VALUE@10..12 0: L_CURLY@10..11 "{" [] [] 1: JSON_MEMBER_LIST@11..11 2: R_CURLY@11..12 "}" [] [] 2: (empty) 2: EOF@12..12 "" [] [] ``` ## Diagnostics ``` structure_trailing_hash.json:1:10 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × unexpected character `#` > 1 │ {"a":"b"}#{} │ ^ structure_trailing_hash.json:1:11 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × End of file expected > 1 │ {"a":"b"}#{} │ ^^ i Use an array for a sequence of values: `[1, 2]` ```