tag | fd3309f606c7ec308fbb79fb02460a27c907a61d | |
---|---|---|
tagger | David Tolnay <dtolnay@gmail.com> | Sat Jun 25 22:42:01 2016 |
object | e670e130c714363468d8e8a313b41b80d9d2891a |
Release 0.7.3
commit | e670e130c714363468d8e8a313b41b80d9d2891a | [log] [tgz] |
---|---|---|
author | David Tolnay <dtolnay@gmail.com> | Sat Jun 25 22:42:01 2016 |
committer | David Tolnay <dtolnay@gmail.com> | Sat Jun 25 22:42:01 2016 |
tree | 66361355ffff62cdec84cea036eb16e429fa083b | |
parent | 90895bda73d3381ce744e9b92913b514db20cb3a [diff] |
Release 0.7.3
This crate is a Rust library for parsing and generating the JSON (JavaScript Object Notation) file format. It is built upon Serde, a high performance generic serialization framework.
This crate works with Cargo and can be found on crates.io with a Cargo.toml
like:
[dependencies] serde = "*" serde_json = "*"
serde_json
is very simple to use out of the box:
extern crate serde; extern crate serde_json; use serde_json::Map; fn main() { let mut map = Map::new(); map.insert("x".to_string(), 1.0); map.insert("y".to_string(), 2.0); let s = serde_json::to_string(&map).unwrap(); assert_eq!(s, "{\"x\":1,\"y\":2}"); let deserialized_map: Map<String, f64> = serde_json::from_str(&s).unwrap(); assert_eq!(map, deserialized_map); }
It also can be used with Serde's automatic serialization library, serde_macros
. First add this to Cargo.toml
:
[dependencies] ... serde = "*" serde_macros = "*" ...
Then run:
#![feature(custom_derive, plugin)] #![plugin(serde_macros)] extern crate serde; extern crate serde_json; #[derive(Debug, PartialEq, Serialize, Deserialize)] struct Point { x: f64, y: f64, } fn main() { let point = Point { x: 1.0, y: 2.0 }; let s = serde_json::to_string(&point).unwrap(); assert_eq!(s, "{\"x\":1,\"y\":2}"); let deserialized_point: Point = serde_json::from_str(&s).unwrap(); assert_eq!(point, deserialized_point); }