json_shape 0.1.1

Rust library to handle JSON shape
Documentation

Latest Version License:Apache Build Status Coverage Status

JSON_Shape

This libraries is not intended to serialize a JSON into a value representation like serde_json does but to represent that types of data that a json or multiple jsons have:

{
    "str": "this is a string",
    "number": 123.456,
    "bool_true": true,
    "bool_false": false,
    "nil": null,
    "array": [123, "string", true],
    "map": {
        "a": "b",
        "c": 123
    },
    "array of maps": [
        {
            "a": "b",
            "c": 123
        },
        {
            "a": "b",
            "b": true
        }
    ]
}

Will be parsed as:

Object{
    "array": Array<OneOf[Boolean | Number | String]>,
    "array of maps": Array<Object{
        "a": String, 
        "b": Option<Boolean>, 
        "c": Option<Number>
    }>, 
    "bool_false": Boolean, 
    "bool_true": Boolean, 
    "map": Object{
        "a": String, 
        "c": Number
    }, 
    "nil": Null, 
    "number": Number, 
    "str": String
}

Installation

Run the following Cargo command in your project directory:

$ cargo add json_shape

Or add the following line to your Cargo.toml:

[dependencies]
json_shape = "0.1"

Usage

use json_shape::JsonShape;
use std::str::FromStr;

let source = r#"{
        "str": "this is a string",
        "number": 123.456,
        "bool_true": true,
        "bool_false": false,
        "nil": null,
        "array": [123, "string", true],
        "map": {
          "a": "b",
          "c": 123
        },
        "array of maps": [
            {
                "a": "b",
                "c": 123
            },
            {
                "a": "b",
                "b": true
            }
        ]
    }"#;

let json_shape = JsonShape::from_str(source).unwrap();