From 59cb86b7bd90aa55bb571df692a800b44463b0e9 Mon Sep 17 00:00:00 2001 From: Markus Westerlind Date: Wed, 13 Dec 2017 21:55:03 +0100 Subject: [PATCH] Fix Params deserialization on serde_json>=1.0.8 (#222) * Fix Params deserialization on serde_json>=1.0.8 Due to https://github.com/serde-rs/json/pull/389, serde_json no longer calls `deserialize_any` in `deserialize_identifer` (and all other default implemented methods). This causes `Params` to fail to deserialize maps and sequences since it has hinted that it expects an identifier. This implements `deserialize` correctly, saying that it accepts any type. * Fix Id deserialization on serde_json>=1.0.8 --- core/src/types/id.rs | 2 +- core/src/types/params.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/types/id.rs b/core/src/types/id.rs index 46c64cfb1..20cd1b58b 100644 --- a/core/src/types/id.rs +++ b/core/src/types/id.rs @@ -29,7 +29,7 @@ impl Serialize for Id { impl<'a> Deserialize<'a> for Id { fn deserialize(deserializer: D) -> Result where D: Deserializer<'a> { - deserializer.deserialize_identifier(IdVisitor) + deserializer.deserialize_any(IdVisitor) } } diff --git a/core/src/types/params.rs b/core/src/types/params.rs index 008913956..2d16ca6f0 100644 --- a/core/src/types/params.rs +++ b/core/src/types/params.rs @@ -50,7 +50,7 @@ struct ParamsVisitor; impl<'a> Deserialize<'a> for Params { fn deserialize(deserializer: D) -> Result where D: Deserializer<'a> { - deserializer.deserialize_identifier(ParamsVisitor) + deserializer.deserialize_any(ParamsVisitor) } }