robotframework-jsonlib is a Robot Framework test library for manipulating JSON Object. You can manipulate your JSON object using JSONPath
Project description
robotframework-jsonlib
JSONLib is a Robot Framework test library for manipulating JSON Object. You can manipulate your JSON object using JSONPath
It is a continuation of the original robotframework-jsonlib library which is no longer maintained.
JSONPath is an expression which can help to access to your JSON document. The JSONPath structure is in the same way as XPath which use for accessing XML document. This is an example of JSONPath syntax.
| JSONPath | Description |
|---|---|
| $ | the root object/element |
| @ | the current object/element |
| . or [] | child operator |
| .. | recursive descent. JSONPath borrows this syntax from E4X |
| * | wildcard. All objects/element regardless their names. |
| [] | subscript operator. XPath uses it to iterate over element collections and for predicates. In Javascript and JSON it is the native array operator. |
| [,] | Union operator in XPath results in a combination of node sets. JSONPath allows alternate names or array indices as a set. |
| [start: end: step] | array slice operator borrowed from ES4 |
| ?() | applies a filter (script) expression. |
| () | script expression, using the underlying script engine. |
This library can help you to add, get, update and delete your JSON object. So it's very useful in case that you have a very large JSON object.
Features
- ✅ Load JSON from files or strings
- ✅ Query JSON using JSONPath expressions
- ✅ Update values in JSON objects
- ✅ Add new objects to JSON
- ✅ Delete objects from JSON
- ✅ Validate JSON against schemas
- ✅ Convert between JSON objects and strings
- ✅ Pretty-print JSON with custom indentation
- ✅ Support for complex nested JSON structures
Notes
Please note this library is a bridge between the Robot Framework and the parser jsonpath-ng. Hence, issues related to parsing should be raised on https://github.com/h2non/jsonpath-ng
Starting with version 0.4, Python2 support is dropped as Python2 reached end of life on 1st of January 2020.
Installation
Install robotframework-jsonlib via pip:
pip install -U robotframework-jsonlib
Example Test Case
| *** Settings *** | ||||
|---|---|---|---|---|
| Library | JSONLib | |||
| *** Test Cases *** | ||||
| ${json_obj}= | Load Json From File | example.json | ||
| ${object_to_add}= | Create Dictionary | country=Thailand | ||
| ${json_obj}= | Add Object To Json | ${json_obj} | $..address | ${object_to_add} |
| ${value}= | Get Value From Json | ${json_obj} | $..country | |
| Should Be Equal As Strings | ${value[0]} | Thailand | ||
| ${value_to_update}= | Set Variable | Japan | ||
| ${json_obj}= | Update Value To Json | ${json_obj} | $..country | ${value_to_update} |
| Should Be Equal As Strings | ${json_obj['country'] | ${value_to_update} | ||
| Should Have Value In Json | ${json_obj} | $..isMarried | ||
| Should Not Have Value In Json | ${json_obj} | $..hasSiblings | ||
| Dump Json To File | ${OUTPUT_DIR}${/}output.json | ${json} | ||
| ${schema_json_obj}= | Load Json From File | schema.json | ||
| Validate Json By Schema | ${json_obj} | ${schema_json_obj} | ||
| Validate Json By Schema File | ${json_obj} | schema.json |
Documentation
- Keyword Documentation: https://veertuinc.github.io/robotframework-jsonlib
- JSONPath Syntax Examples: https://goessner.net/articles/JsonPath/index.html#e3
- JSONPath Parser (jsonpath-ng): https://github.com/h2non/jsonpath-ng
- GitHub Repository: https://github.com/veertuinc/robotframework-jsonlib
Contributing
Contributions are welcome! Please see DEVELOPMENT.md for:
- Setting up your development environment
- Running tests and CI checks
- Building and publishing the package
- Coding standards and guidelines
Help & Support
- Issues: Report bugs or request features at GitHub Issues
- Discussions: Ask questions at GitHub Discussions
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file robotframework_jsonlib-1.1.1.tar.gz.
File metadata
- Download URL: robotframework_jsonlib-1.1.1.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b519bfe7c23401803609c99a4b2d34c2a6c84c781f12dbdb8271e03827b9852
|
|
| MD5 |
d311f84e8a681abf92d7e1f78822b858
|
|
| BLAKE2b-256 |
78d6d381ce72a03f8182f751ec42e266ac772ac99069c6f0c685ec6f91e2f4c9
|
File details
Details for the file robotframework_jsonlib-1.1.1-py3-none-any.whl.
File metadata
- Download URL: robotframework_jsonlib-1.1.1-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba8867cb430a53bf9e797ea333e19d894f4f2ddbfd004fc44d1a711abc612900
|
|
| MD5 |
968adeb9088d6aa0c8817f860949e3a9
|
|
| BLAKE2b-256 |
406c091cec8617aa23c0fad9f7a6fda6729360523fcc87a50f486081e6d6cf36
|