diff --git a/Cargo.lock b/Cargo.lock index bd46ffb95..6b6951202 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -811,6 +811,7 @@ dependencies = [ "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)", "tiny-keccak 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/util/network/Cargo.toml b/util/network/Cargo.toml index ba34bfac7..19afb8130 100644 --- a/util/network/Cargo.toml +++ b/util/network/Cargo.toml @@ -34,6 +34,7 @@ path = { path = "../path" } ethcore-logger = { path ="../../logger" } ipnetwork = "0.12.6" hash = { path = "../hash" } +serde_json = "1.0" [features] default = [] diff --git a/util/network/src/lib.rs b/util/network/src/lib.rs index f23998984..6257118b6 100644 --- a/util/network/src/lib.rs +++ b/util/network/src/lib.rs @@ -69,7 +69,6 @@ extern crate rand; extern crate time; extern crate ansi_term; //TODO: remove this extern crate rustc_hex; -extern crate rustc_serialize; extern crate igd; extern crate libc; extern crate slab; @@ -81,6 +80,7 @@ extern crate path; extern crate ethcore_logger; extern crate ipnetwork; extern crate hash; +extern crate serde_json; #[macro_use] extern crate log; diff --git a/util/network/src/node_table.rs b/util/network/src/node_table.rs index 1225c750c..052657db6 100644 --- a/util/network/src/node_table.rs +++ b/util/network/src/node_table.rs @@ -32,7 +32,7 @@ use error::NetworkError; use {AllowIP, IpFilter}; use discovery::{TableUpdates, NodeEntry}; use ip_utils::*; -pub use rustc_serialize::json::Json; +use serde_json::Value; /// Node public key pub type NodeId = H512; @@ -332,7 +332,7 @@ impl NodeTable { return nodes; } } - let json = match Json::from_str(&buf) { + let json: Value = match ::serde_json::from_str(&buf) { Ok(json) => json, Err(e) => { warn!("Error parsing node table file: {:?}", e); @@ -341,7 +341,7 @@ impl NodeTable { }; if let Some(list) = json.as_object().and_then(|o| o.get("nodes")).and_then(|n| n.as_array()) { for n in list.iter().filter_map(|n| n.as_object()) { - if let Some(url) = n.get("url").and_then(|u| u.as_string()) { + if let Some(url) = n.get("url").and_then(|u| u.as_str()) { if let Ok(mut node) = Node::from_str(url) { if let Some(failures) = n.get("failures").and_then(|f| f.as_u64()) { node.failures = failures as u32;