Expand description
Json String Literal Generator
Write json with Rust syntax instead of hard to read inline strings.
Results are converted to a &'static str
at compile-time.
§Usage
This crate is on crates.io.
There are two ways to reference json_str
in your projects, depending on whether you’re on
the stable
/beta
or nightly
channels.
§Stable
To get started, add json_str
to your Cargo.toml
:
[dependencies]
json_str = "*"
And reference it in your crate root:
#[macro_use]
extern crate json_str;
§Nightly
To get started, add json_str
to your Cargo.toml
:
[dependencies]
json_str = { version = "*", features = "nightly" }
And reference it in your crate root:
#![feature(plugin)]
#![plugin(json_str)]
If you’re on the nightly
channel, it’s better to use the above plugin
version, because
the conversion and sanitisation takes place at compile-time instead of runtime, saving precious
runtime cycles.
§Examples
The json_str!
macro will take an inline token tree and return an str
literal:
let json = json_str!({
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"geo_distance": {
"distance": "20km",
"location": {
"lat": 37.776,
"lon": -122.41
}
}
}
}
}
});
This will also work for unquoted keys for something a bit more rusty
:
let json = json_str!({
query: {
filtered: {
query: {
match_all: {}
},
filter: {
geo_distance: {
distance: "20km",
location: {
lat: 37.776,
lon: -122.41
}
}
}
}
}
});
For json values that can’t be fully determined at compile-time, use json_macros instead.