• Ivy Seo

Serialize/Deserialize JSON in Rust

This README has some good examples.


To deserialize in Rust:

use serde::{Deserialize, Serialize};
use serde_json::Result;

#[derive(Serialize, Deserialize)]
struct Person {
    name: String,
    age: u8,
    phones: Vec<String>,
}

fn typed_example() -> Result<()> {
 // Some JSON input data as a &str. Maybe this comes from the user.
 let data = r#"
        {
            "name": "John Doe",
            "age": 43,
            "phones": [
                "+44 1234567",
                "+44 2345678"
            ]
        }"#;

 // Parse the string of data into a Person object. This is exactly the
 // same function as the one that produced serde_json::Value above, but
 // now we are asking it for a Person as output.
 let p: Person = serde_json::from_str(data)?;

 // Do things just like with any other Rust data structure.
    println!("Please call {} at the number {}", p.name, p.phones[0]);

    Ok(())
}

fn main() {
    typed_example().unwrap();
}



To serialize in Rust:

use serde::{Deserialize, Serialize};
use serde_json::Result;

#[derive(Serialize, Deserialize)]
struct Address {
    street: String,
    city: String,
}

fn print_an_address() -> Result<()> {
 // Some data structure.
 let address = Address {
        street: "10 Downing Street".to_owned(),
        city: "London".to_owned(),
    };

 // Serialize it to a JSON string.
 let j = serde_json::to_string(&address)?;

 // Print, write to a file, or send to an HTTP server.
    println!("{}", j);

    Ok(())
}

How I utilized: retrieve data, serialize, write a text file


pub fn serialize_writeFile(data : &full_data ) -> Result<bool, modbus::Error> { // 1) takes some_data
 // this function takes the m7_data object and serializes the contents and saves the results to a text file
 
 // 2) serializes the contents
 
 let some_data = json!({

 "logdate" : Utc::now().naive_local(), 
 "direction": data.job_info.direction,
 "job": data.job_info.job_name
    });
 
 
 // 3) saves the results to a text file

 let file_generated = File::create("C:/Users/Desktop/jsonData.txt").expect("create .txt file failed"); // file location


 let mut file_generated = BufWriter::new(file_generated);
 file_generated.write_all(format!("{}", some_data).as_bytes()).expect("write failed");
 
 Ok(true)
}

Recent Posts

See All

Generate unique filename: UUID, Path

A: using UUID let my_uuid = Uuid::new_v4(); let file_created = File::create(my_uuid.to_string()).expect("create file failed");     println!("uuid: {}", my_uuid); //  buffer write let mut file_ge

JSON - write .txt file in Rust

pub fn serialize_writeFile(data : &full_data ) -> Result<bool, modbus::Error> { // 1) takes data  // this function takes the m7_data object and serializes the contents and saves the results to a text

ngx-datatable ver. 1

How is how I created a data table : component.html file: <p style="font-weight: bold; font-size: larger; color: yellow;"> M7 Log Data Report </p> <ngx-datatable class="ngx-datatable" style= " border-s