10_json_roundtrip/
10_json_roundtrip.rs1use matten::Tensor;
10
11fn main() -> Result<(), Box<dyn std::error::Error>> {
12 let original = Tensor::new(vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0], &[2, 3]);
14 let json = serde_json::to_string(&original)?;
15 println!("serialised: {json}");
16
17 let restored: Tensor = serde_json::from_str(&json)?;
18 assert_eq!(original, restored);
19 println!("round-trip: OK shape={:?}", restored.shape());
20
21 let t = Tensor::from_json(r#"{"shape":[2,2],"data":[1.0,2.0,3.0,4.0]}"#)?;
23 println!("object form: {t:?}");
24
25 let t2 = Tensor::from_json("[[1.0,2.0],[3.0,4.0]]")?;
27 println!("nested form: {t2:?}");
28
29 let t3 = Tensor::load_json("examples/data/tensor_2x2.json")?;
31 println!("from file: {t3:?}");
32
33 Ok(())
34}