Cargo.toml:
x
[dependencies]serde = { version = "1.0.130", features = ["derive"] }serde_json = "1.0"serde_yaml = "0.9.13"anyhow = "1.0.55"src/main.rs:
use anyhow::{anyhow, Result};use serde_json::Value;
fn main() -> Result<()> { let json_strings = r#"{"a": 1}{a: 2}{"a": 3}"#; let result = json_strings .split("\n") .filter_map(|s| serde_json::from_str::<Value>(s).ok()) .collect::<Vec<_>>(); for item in &result { let a = item .get("a") .ok_or(anyhow!("miss field a"))? .as_u64() .ok_or(anyhow!("invalid type of field a"))?; println!("a: {}", a); } println!("{:?}", result);
Ok(())}