Crates.io | json-pretty-compact |
lib.rs | json-pretty-compact |
version | 0.1.2 |
source | src |
created_at | 2024-10-11 12:22:41.142059 |
updated_at | 2024-10-15 12:31:17.477215 |
description | A compact & pretty formatter for serde_json |
homepage | |
repository | https://github.com/drobin/json-pretty-compact |
max_upload_size | |
id | 1405263 |
size | 60,666 |
The json_pretty_compact
crate implements a pretty serde_json formatter
which tries to be as compact as possible. This can increase the readability
of formatted JSON.
A compact-pretty formatted JSON looks like this:
[
{
"name": { "first": "Kobe", "middle": "Nico", "last": "Grimes" },
"phoneNumber": "1-547-479-5471 x062",
"username": "Kobe-Grimes",
"emails": [ "Melyssa.Cremin4@gmail.com", "Jayne.Green37@gmail.com" ],
"coordinates": { "latitude": "-66.3821", "longitude": "127.117" }
},
{
"name": { "first": "Adrian", "middle": "Finley", "last": "Koch" },
"phoneNumber": "1-420-853-5251 x68083",
"username": "Adrian-Koch",
"emails": [ "Andy99@gmail.com", "Elenor.Aufderhar96@gmail.com" ],
"coordinates": { "latitude": "51.4003", "longitude": "3.351" }
}
]
The formatter tries to put arrays and objects into one line, as long as the line length is still within its limit. If a line will become too large, the formatter will change into a pretty format.
use json_pretty_compact::PrettyCompactFormatter;
use serde::Serialize;
use serde_json::{Serializer, Value};
// Create a JSON value.
// In this simple example it contains only the "true" value.
let value: Value = serde_json::from_str("true").unwrap();
// The buffer where the serialized JSON is written.
let mut target = vec![];
// Create the formatter.
// It takes all the default values.
let formatter = PrettyCompactFormatter::new();
// Serialize the JSON value into the `target` buffer.
let mut ser = Serializer::with_formatter(&mut target, formatter);
value.serialize(&mut ser).unwrap();
assert_eq!(target, b"true");
You can check out the full license here.
This project is licensed under the terms of the MIT license.