Skip to content

Update Rust crate serde_json to ~1.0.94

Óscar García Amor requested to merge renovate/serde_json-1.x into master

This MR contains the following updates:

Package Type Update Change
serde_json dependencies patch ~1.0 -> ~1.0.94

Release Notes

serde-rs/json

v1.0.94

Compare Source

  • Fix message duplication between serde_json::Error's Display and source() (#​991, #​992)

v1.0.93

Compare Source

  • Support 128-bit integers in serde_json::to_value (#​982)

v1.0.92

Compare Source

  • Documentation improvements

v1.0.91

Compare Source

  • Opt out of -Zrustdoc-scrape-examples on docs.rs for now

v1.0.90

Compare Source

  • Documentation improvements

v1.0.89

Compare Source

  • Fix invalid JSON incorrectly accepted when a large number has no digits after decimal point (#​953)

v1.0.88

Compare Source

  • Optimize serde_json::Map's implementation of append and clone_from (#​952, thanks @​Lucretiel)

v1.0.87

Compare Source

  • Add write_i128 and write_u128 methods to serde_json::Formatter to control the formatting of 128-bit integers (#​940, thanks @​Lucretiel)

v1.0.86

Compare Source

v1.0.85

Compare Source

  • Make Display for Number produce the same representation as serializing (#​919)

v1.0.84

Compare Source

  • Make Debug impl of serde_json::Value more compact (#​918)

v1.0.83

Compare Source

  • Add categories to crates.io metadata

v1.0.82

Compare Source

v1.0.81

Compare Source

  • Work around indexmap/autocfg not always properly detecting whether a std sysroot crate is available (#​885, thanks @​cuviper)

v1.0.80

Compare Source

  • Documentation improvements

v1.0.79

Compare Source

  • Allow RawValue deserialization to propagate \u escapes for unmatched surrogates, which can later by deserialized to Vec<u8> (#​830, thanks @​lucacasonato)

v1.0.78

Compare Source

  • Support deserializing as &RawValue in map key position, which would previously fail with "invalid type: newtype struct" (#​851)

v1.0.77

Compare Source

  • Include discord invite links in the published readme
  • Improve compile error on compiling with neither std nor alloc feature enabled
  • Include integration tests in published package (#​578)

v1.0.76

Compare Source

  • Fix a build error when features raw_value and alloc are enabled while std is disabled (#​850)

v1.0.75

Compare Source

  • Fix deserialization of small integers in arbitrary_precision mode (#​845)

v1.0.74

Compare Source

  • Allow creating RawValues from references to unsized values (#​841, thanks @​EFanZh)

v1.0.73

Compare Source

  • Update itoa dependency to 1.0

v1.0.72

Compare Source

v1.0.71

Compare Source

v1.0.70

Compare Source

v1.0.69

Compare Source

v1.0.68

Compare Source

  • Preserve negative sign of -0 when deserializing to f32 or f64 (#​799, #​801)

v1.0.67

Compare Source

  • Fix inconsistency of deserialization of unknown fields in a struct variant from bytes vs from Value (#​795)

v1.0.66

Compare Source

  • Preserve exponent signifier and unary plus in exponent of arbitrary_precision numbers (#​786, thanks @​ruifengx)

v1.0.65

Compare Source

  • Documentation improvements

v1.0.64

Compare Source

  • Fix deserialization panic on deserializing RawValue from a slice containing non-utf8 bytes (#​755)

v1.0.63

Compare Source

v1.0.62

Compare Source

v1.0.61

Compare Source

v1.0.60

Compare Source

  • Add impl FromIterator<(impl Into<String>, impl Into<Value>)> for Value, which collects a Value::Object (#​733, thanks @​matklad)

v1.0.59

Compare Source

  • In arbitrary_precision mode, return None from serde_json::Number::as_f64 if the JSON number is larger than the maximum possible f64

v1.0.58

Compare Source

  • Add serde_json::Map::remove_entry, matching the equivalent API on BTreeMap

v1.0.57

Compare Source

  • Allow serde_json::Deserializer to be instantiated without consuming the serde_json::​de::Read impl (#​684)

v1.0.56

Compare Source

v1.0.55

Compare Source

v1.0.54

Compare Source

  • Add float_roundtrip feature to enable a slower but higher precision float parser based on lexical.

    Enabling float_roundtrip will use sufficient precision when parsing fixed precision floats from JSON to ensure that they maintain accuracy when round-tripped through JSON. This comes at an approximately 2x performance cost for parsing floats compared to the default best-effort precision.

    Unlike arbitrary_precision, the new float_roundtrip feature makes f64 -> JSON -> f64 produce output identical to the input. arbitrary_precision is for making JSON -> serde_json::Number -> JSON produce output identical to the input.

    serde_json = { version = "1.0.54", features = ["float_roundtrip"] }

v1.0.53

Compare Source

  • Reduce unhelpful indentation in the {:#?} format of serde_json::Value
  • Remove some unnecessary runtime checks from Serializer::collect_str

v1.0.52

Compare Source

v1.0.51

Compare Source

  • Terminate StreamDeserializer after errors instead of repeatedly reparsing the same failed input (#​647)
  • Add FusedIterator impls for StreamDeserializer and for Map's various iterators

v1.0.50

Compare Source

v1.0.49

Compare Source

  • Improve error message when neither "std" nor "alloc" feature is enabled (#​643)

v1.0.48

Compare Source

  • Add serde_json::value::Serializer which produces a Value as output (#​621, thanks @​sdleffler)

v1.0.47

Compare Source

  • Raise serde requirement to 1.0.100+ for the necessary no-std traits (#​617, thanks @​Xanewok)

v1.0.46

Compare Source

  • Serialize JSON map entries using serialize_entry instead of serialize_key + serialize_value to support transcoding to XML (#​614, thanks @​jmfiaschi)

v1.0.45

Compare Source

  • Add no-std support (#​606, thanks @​Xanewok)

    [dependencies]
    serde_json = { version = "1.0.45", default-features = false, features = ["alloc"] }

v1.0.44

Compare Source

  • Implement IntoDeserializer for serde_json::Value to allow deserializing from types like HashMap<String, Value> (#​591)

v1.0.43

Compare Source

  • Declare accurate minimum required version of indexmap crate when preserve-order feature is enabled (#​590, thanks @​nlordell)

v1.0.42

Compare Source

v1.0.41

Compare Source

v1.0.40

Compare Source

  • Return correct EOF error type on cut-off decimal numbers (#​525, thanks @​17dec)

v1.0.39

Compare Source

  • Fix roundtrip of adjacently tagged enum containing f32 (#​520)

v1.0.38

Compare Source

  • Add Deserializer::disable_recursion_limit guarded by an "unbounded_depth" Cargo cfg; this allows parsing arbitrarily deep JSON structures without any consideration for overflowing the stack; see documentation in the link for how to do this safely (#​509)

v1.0.37

Compare Source

  • Work around a compounding error message bug when using serde_json in combination with erased-serde (https://github.com/dtolnay/erased-serde/issues/21) that resulted in error messages like:

    "trailing comma at line 32 column 41 at line 32 column 41 at line 33 column 37 at line 34 column 33 at line 35 column 29 at line 36 column 25 at line 36 column 25 at line 36 column 25 at line 36 column 25"

v1.0.36

Compare Source

  • Fix serialization of maps with u128 key (#​511)

v1.0.35

Compare Source

  • Update example code in documentation to 2018 edition

v1.0.34

Compare Source

  • Support serialization of i128 to Value if "arbitrary_precision" feature is enabled (#​506, thanks @​koushiro)

v1.0.33

Compare Source

  • Allow map key to be borrowed when deserializing from &Value (#​503)

v1.0.32

Compare Source

  • Fix panic when parsing floating point number with exponent of E-2147483647 in debug mode (#​492)

v1.0.31

Compare Source

  • Improve performance of parsing strings containing hex escape sequences (#​489, thanks @​yjh0502)

v1.0.30

Compare Source

  • Implement parsing of IgnoredAny and RawValue without recursion (#​486)

v1.0.29

Compare Source

  • Provide a RawValue type which represents a contiguous range of bytes in the input corresponding to one JSON value without parsing that value into any particular data structure (#​355)

v1.0.28

Compare Source

  • Performance improvement for calls to serde_json::from_str in which the input does not contain JSON escape sequences (#​482)

v1.0.27

Compare Source

  • Fix a warning when building docs under Rust 2018 with serde_json as a dependency (#​476, thanks @​Enet4)

v1.0.26

Compare Source

v1.0.25

Compare Source

  • Support 2018-style import of json! macro (#​458)

    use serde_json::json;

v1.0.24

Compare Source

  • Make json! macro compatible with using the deny(unused_results) lint (#​461)

v1.0.23

Compare Source

(yanked)

v1.0.22

Compare Source

  • Fix error category when deserialization fails in a truncated null (#​454)

v1.0.21

Compare Source

v1.0.20

Compare Source

  • Switch to indexmap as the implementation of the "preserver_order" feature, as linked-hash-map is no longer maintained (#​451, thanks @​lnicola)

v1.0.19

Compare Source

v1.0.18

Compare Source

  • Support serializing and deserializing 128-bit integers (#​448)

v1.0.17

Compare Source

  • Consistent meaning of serde_json::Value equality whether or not "preserve_order" feature is enabled (#​438, thanks @​Diggsey)

v1.0.16

Compare Source

  • Add values_mut() iterator for serde_json::Map (#​437)

v1.0.15

Compare Source

  • Make treatment of deserializer hints by serde_json::from_value consistent with serde_json::from_str

v1.0.14

Compare Source

  • Clearer Debug representation of serde_json::Error (#​410)

v1.0.13

Compare Source

  • Add an arbitrary_precision feature which allows the serialization and deserialization of serde_json::Number to operate on data of arbitrary size/precision, rather than just fixed-width primitive integer and floating point types (#​416, thanks @​alexreg)

v1.0.12

Compare Source

(dependency bump only)

v1.0.11

Compare Source

v1.0.10

Compare Source

v1.0.9

Compare Source

  • Hide implementation details of serde_json::Number from the Debug representation

v1.0.8

Compare Source


Compatibility notes

Part of the improvement to compile time comes from having generic methods in serde_json instantiate many fewer Visitor trait methods than they used to. For example if a Deserialize impl is being deserialized from JSON and the impl indicates to Serde that the type u64 is expected, serde_json can avoid instantiating all of the Visitor methods that deal with string, borrowed string, unit, sequence, map, boolean, char, bytes, borrowed bytes, option, newtype, and enum. Previously all of these methods were instantiated and compile times were predictably poor in consequence. As of this release, serde_json instantiates only the expected Visitor methods and instead renders invalid_type error messages in a central place in the Deserializer that can be instantiated just once. This does not apply to deserialize_any for which it continues to be necessary to instantiate every Visitor method.

This does mean that code relying on the deserialize hint to be wrong may no longer deserialize successfully.

impl<'de> Deserialize<'de> for MyType {
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
        where D: Deserializer<'de>
    {
        struct MyVisitor;

        impl<'de> Visitor<'de> for MyVisitor {
            type Value = MyType;

            fn expecting(&self, f: &mut fmt::Formatter) -> fmt::Result {
                f.write_str("a string, although we ask the deserializer for u64")
            }

            fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
                where E: de::Error
            {
                Ok(/* ... */)
            }
        }

        // It used to be that serde_json would ignore this hint and call visit_str
        // for string input, but in the general case that destroys compile times
        // by instantiating far more Visitor methods than are ever used.
        deserializer.deserialize_u64(MyVisitor)
    }
}

v1.0.7

Compare Source

  • Support top-level primitives in StreamDeserializer (#​384, thanks @​bouk)

v1.0.6

Compare Source

v1.0.5

Compare Source

  • Documentation improvements

v1.0.4

Compare Source

  • Improve error message for an array or object containing a trailing comma, which is not allowed in JSON (#​353, thanks @​fmoor)

v1.0.3

Compare Source

v1.0.2

Compare Source

v1.0.1

Compare Source

  • Fix deserialization of maps with non-string keys (#​311)

    For example {"1":"one"} can be serialized and deserialized as BTreeMap<i32, String>.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Edited by Óscar García Amor

Merge request reports