首页 > 解决方案 > 反序列化以数组开头的 JSON 以与 restson 一起使用

问题描述

我有一个结构:

#[derive(Serialize,Deserialize,Debug)]
struct Post {
    #[serde(rename(deserialize = "userId"))]
    user_id: i32,
    id: i32,
    title: String,
    body: String,
}

我需要将 JSON 反序列化为Vec<Post>

extern crate restson;
extern crate serde;
extern crate serde_derive;

use std::fs;
use std::path::Path;
use restson::{RestClient, RestPath, Error};
use serde_derive::{Serialize, Deserialize};

const URI: &str ="https://jsonplaceholder.typicode.com/";
impl RestPath<()> for Vec<Post> {
    fn get_path(_: ()) -> Result<String, Error> {
        Ok(String::from("posts"))
    }
}

fn main() {
    let mut client = RestClient::new(URI).unwrap();

    let posts: Vec<Post> = client.get(()).unwrap();
    println!("{:?}", posts.len());
}

我是全新的,所以请帮助我。

标签: rustserde

解决方案


推荐阅读