pub fn rust_server() -> redis::RedisResult<()> {
println!("-> redis_server");
let client = redis::Client::open(get_uri())?;
let mut con = client.get_connection()?;
println!("-> redis_server: {}", get_uri());
println!("-> redis_server_pub_sub");
let mut pub_sub = con.as_pubsub();
println!("-> redis_server subscribe channels: {}", get_sub());
pub_sub.subscribe(get_sub())?;
loop {
let msg = pub_sub.get_message()?;
let payload: String = msg.get_payload()?;
println!("{}", payload);
}
}
How can I parse the following JSON payload of type String with serde_json?
let payload: String = msg.get_payload()?;
The solution is to use serde_json::from_str and it's well documented:
use serde::Deserialize; #[derive(Deserialize, Debug)] struct User { fingerprint: String, location: String, } fn main() { // The type of `j` is `&str` let j = " { \"fingerprint\": \"0xF9BA143B95FF6D82\", \"location\": \"Menlo Park, CA\" }"; let u: User = serde_json::from_str(j).unwrap(); println!("{:#?}", u); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With