diff --git a/docs/README.md b/docs/README.md index 8adf49d4..f40e3934 100644 --- a/docs/README.md +++ b/docs/README.md @@ -782,10 +782,9 @@ $ http --offline --print=B pie.dev/post \ } ``` -Starting with 3.0, we have embedded a mini language inside HTTPie's own syntax to -build complex JSON with ease. This syntax was inspired by the [JSON form](https://www.w3.org/TR/html-json-forms/) -proposal for HTML, though we have changed a lot of parts to offer the best experience -and reduce the number of typing-caused failures. +Starting with 3.0, we have created a mini language in HTTPie's own syntax to +build complex JSON objects with ease. This syntax was inspired by the [JSON form](https://www.w3.org/TR/html-json-forms/) +proposal for HTML, though we have changed a lot of parts to offer the best experience. #### Introduction diff --git a/httpie/cli/nested_json.py b/httpie/cli/nested_json.py index 615f0427..59dcf3e7 100644 --- a/httpie/cli/nested_json.py +++ b/httpie/cli/nested_json.py @@ -146,7 +146,7 @@ class Path: def reconstruct(self) -> str: if self.kind == 'key': if self.is_root: - return self.accessor + return str(self.accessor) return '[' + self.accessor + ']' elif self.kind == 'index': return '[' + str(self.accessor) + ']' @@ -186,10 +186,12 @@ def parse(source: str) -> Iterator[Path]: cursor += 1 if token.kind in kinds: return token - else: + elif tokens: token = tokens[-1]._replace( start=tokens[-1].end + 0, end=tokens[-1].end + 1 ) + else: + token = None if len(kinds) == 1: suffix = kinds[0].to_name() @@ -272,7 +274,7 @@ def interpret(context: Any, key: str, value: Any) -> Any: key, pseudo_token, message, message_kind='Type' ) - def object_for(kind: str) -> str: + def object_for(kind: str) -> Any: if kind == 'key': return {} elif kind in {'index', 'append'}: