Skip to main content

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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robotframework_jsonlib-1.1.1.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robotframework_jsonlib-1.1.1-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

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

Hashes for robotframework_jsonlib-1.1.1.tar.gz
Algorithm Hash digest
SHA256 5b519bfe7c23401803609c99a4b2d34c2a6c84c781f12dbdb8271e03827b9852
MD5 d311f84e8a681abf92d7e1f78822b858
BLAKE2b-256 78d6d381ce72a03f8182f751ec42e266ac772ac99069c6f0c685ec6f91e2f4c9

See more details on using hashes here.

File details

Details for the file robotframework_jsonlib-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for robotframework_jsonlib-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ba8867cb430a53bf9e797ea333e19d894f4f2ddbfd004fc44d1a711abc612900
MD5 968adeb9088d6aa0c8817f860949e3a9
BLAKE2b-256 406c091cec8617aa23c0fad9f7a6fda6729360523fcc87a50f486081e6d6cf36

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page