# JSON5
[![crates.io](https://img.shields.io/crates/v/json5.svg)](https://crates.io/crates/json5)
[![docs.rs](https://docs.rs/json5/badge.svg)](https://docs.rs/json5)
A Rust [JSON5] serializer and deserializer which speaks [Serde].
## API
Deserialize a JSON5 string with `from_str`. Go the other way with `to_string`.
The serializer is very basic at the moment, it just produces plain old JSON.
See the [Serde documentation] for details on implementing `Serialize` and
`Deserialize`. (Usually it's just a case of sprinkling in some derives.)
The [Serde data model] is mostly supported, with the exception of bytes and
borrowed strings.
## Example
Read some config into a struct.
```rust
use json5;
use serde_derive::Deserialize;
#[derive(Deserialize, Debug, PartialEq)]
struct Config {
message: String,
n: i32,
}
fn main() {
let config = "
{
// A traditional message.
message: 'hello world',
// A number for some reason.
n: 42,
}
";
assert_eq!(
json5::from_str(config),
Ok(Config {
message: "hello world".to_string(),
n: 42,
}),
);
}
```
[JSON5]: https://json5.org/
[Serde]: https://serde.rs/
[Serde documentation]: https://serde.rs/custom-serialization.html
[Serde data model]: https://serde.rs/data-model.html