Rust serde_json , jsonからvec変換と 繰り返し処理の例 #Rust
■ 概要:
Rust のjson から デコード(deserialized)
vec 変換等のメモとなります
■ 環境
Rust
rustc 1.46.0
cargo 1.46.0
■ コード例
https://gist.github.com/kuc-arc-f/e381dbcf52ba9b652c2f8778dca47db3
・行の部分は structに設定しています
// Rust serde_json , jsonからvec変換と 繰り返し処理の例
//
// [dependencies]
// serde = { version = "1.0", features = ["derive"] }
// serde_json = "1.0"
use serde::{Deserialize, Serialize};
use serde_json::{Result, Value};
fn type_of<T>(_: T) -> &'static str {
std::any::type_name::<T>()
}
#[derive(Serialize, Deserialize, Debug)]
struct Point {
name: String,
age: i32,
}
//
pub fn test() -> Result<()>{
let data = r#"
[
{
"name": "John Doe",
"age": 43
},
{
"name": "Joh-2",
"age": 23
},
{
"name": "Joh-3",
"age": 28
}
]
"#;
let deserialized: Vec<Point> = serde_json::from_str(data).unwrap();
//println!( "{:?}" , deserialized );
for row in &deserialized {
println!("name={}", row.name );
println!("age={}", row.age );
}
Ok(())
}
//
fn main() {
test();
}
■ Cargo.toml
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
この記事が気に入ったらサポートをしてみませんか?