在 Rust 中,如果想要将一个结构体转换为 JSON 字符串,你可以使用 serde 库。
首先,你需要在
Cargo.toml
文件中添加
serde
和
serde_json
作为依赖:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
然后,在你的 Rust 代码中添加如下内容:
extern crate serde;
extern crate serde_json;
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
struct Point {
x: i32,
y: i32,
fn main() {
let point = Point { x: 1, y: 2 };
let serialized = serde_json::to_string(&point).unwrap();
println!("serialized = {}", serialized);
上面的代码会将 Point
结构体转换为如下的 JSON 字符串:
{"x":1,"y":2}
如果你想要将 JSON 字符串反序列化为结构体,你可以使用 serde_json::from_str
函数:
extern crate serde;
extern crate serde_json;
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
struct Point {
x: i32,
y: i32,
fn main() {
let json_str = r#"{"x":1,"y":2}"#;
let point: Point = serde_json::from_str(json_str).unwrap();
println!("point = ({}, {})", point.x, point.y);
上面的代码会将 JSON 字符串反序列化为 Point
结构体,并打印出 (1, 2)
。