Skip to content

Instantly share code, notes, and snippets.

@compressed
Last active March 20, 2017 18:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save compressed/7538ee517f4f71b7a6746ca4966104a1 to your computer and use it in GitHub Desktop.
Save compressed/7538ee517f4f71b7a6746ca4966104a1 to your computer and use it in GitHub Desktop.
serde deserialization error for skipped fields
[package]
name = "serde_test"
version = "0.1.0"
[dependencies]
serde = "0.9"
serde_json = "0.9"
serde_derive = "0.9"
#[macro_use]
extern crate serde_derive;
extern crate serde_json;
extern crate serde;
use std::fs::File;
use std::io::prelude::*;
#[derive(Debug, Deserialize)]
struct User {
name: String,
// don't care about the "fields" field at all
// fields: serde_json::Value,
}
fn main() {
let json = File::open("./users.json").unwrap();
let obj = serde_json::from_reader::<File, Vec<User>>(json);
println!("{:?}", obj);
// fails with Err(Syntax(Message("invalid type: map, expected a sequence"), 1, 2))
// because "fields" goes from a Map to a Vec
}
{"users":[{"name": "bob", "fields": {"a": "b"}}, {"name": "chris", "fields": []}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment