Releases: serde-rs/json
Releases · serde-rs/json
v0.9.5
v0.9.4
v0.9.3
- Impl Default for Value; the default Value is Value::Null (#226, thanks @killercup)
- Fix a bug that could successfully deserialize enums from invalid JSON (#230, thanks @killercup)
- Allow
to_value
to serialize maps with integer keys, matching the behavior ofto_string
(#231, thanks @killercup) - Impl PartialEq for Value to simplify comparisons with various primitive types (#235, thanks @imp)
v0.9.2
v0.9.1
v0.9.0
This release features a redesigned serde_json::Value
enum that better represents the loosely-typed reality of common JSON workflows in Rust. Don't despair - strongly typed Serde serialization and deserialization is still supported of course.
enum Value {
Null,
Bool(bool),
Number(Number),
String(String),
Array(Vec<Value>),
Object(Map<String, Value>),
}
See the documentation for example code, including some examples of indexing into a serde_json::Value
in a concise way: jv["address"]["city"]
.
This release adds a json!
macro for building serde_json::Value
objects in your program from a very natural JSON syntax.
// The type of `value` is serde_json::Value
let value = json!({
"code": 200,
"success": true,
"payload": {
"features": [
"serde",
"json"
]
}
});
Any expression can be included in the serde_json::Value
that you build. This works as long as the type of the expression implements Serde's Serialize
trait.
let code = 200;
let features = vec!["serde", "json"];
let value = json!({
"code": code,
"success": code == 200,
"payload": {
features[0]: features[1]
}
});
Please read also the Serde 0.9.0 release notes.
v0.9.0-rc3
Release 0.9.0-rc3
v0.9.0-rc2
Release 0.9.0-rc2
v0.9.0-rc1
Release 0.9.0-rc1