public class JsonTokenizer extends CodeTokenizer
Specialized CodeTokenizer for JSON and JSONC documents.
Distinguishes JSON object property keys ("key": -> TokenKind.PROPERTY_NAME) from string values (TokenKind.STRING), numbers (TokenKind.NUMBER), and boolean/null literals (TokenKind.CONSTANT).
import klyn.code
import klyn.code.json
tokenizer = JsonTokenizer()
res = tokenizer.tokenizeLine("{\"name\": \"Klyn\", \"fast\": true}")
assert res.spans[1].kind == TokenKind.PROPERTY_NAME| Modifier and Type | Member | Description |
|---|---|---|
| public | JsonTokenizer | Constructs a JsonTokenizer configured with JsonLanguage.profile(). |
| Modifier and Type | Member | Description |
|---|---|---|
| public override | tokenizeLinetokenizeLine(line as String, initialState as LexicalState = null) as LineScanResult |
Tokenizes a single line of JSON/JSONC, promoting "key" tokens immediately followed by : to TokenKind.PROPERTY_NAME. |