Watch
1
0
Fork
You've already forked rust-json-pretty-compact
0
No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Daniel Baumann d9155188c8
Updating to debhelper 14.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2026-06-14 12:50:39 +02:00
.github/workflows Adding upstream version 0.1.2. 2025-12-31 12:47:54 +01:00
debian Updating to debhelper 14. 2026-06-14 12:50:39 +02:00
fixtures Adding upstream version 0.1.2. 2025-12-31 12:47:54 +01:00
src Adding upstream version 0.1.2. 2025-12-31 12:47:54 +01:00
tests Adding upstream version 0.1.2. 2025-12-31 12:47:54 +01:00
.cargo_vcs_info.json Adding upstream version 0.1.2. 2025-12-31 12:47:54 +01:00
.gitignore Adding upstream version 0.1.2. 2025-12-31 12:47:54 +01:00
Cargo.toml Adding upstream version 0.1.2. 2025-12-31 12:47:54 +01:00
Cargo.toml.orig Adding upstream version 0.1.2. 2025-12-31 12:47:54 +01:00
LICENSE Adding upstream version 0.1.2. 2025-12-31 12:47:54 +01:00
README.md Adding upstream version 0.1.2. 2025-12-31 12:47:54 +01:00

json-pretty-compact: A compact & pretty formatter for serde_json.

Introduction

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" }
  }
]

Compaction rules

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.

Usage

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");

License

You can check out the full license here.

This project is licensed under the terms of the MIT license.