Serialization Without Crates
JSON-Shaped Record
Escape Text Fields
A JSON-shaped string needs quotes around text fields and escaping before data is embedded.
Program
Play the program to choose a name and build a small JSON-shaped record with a fixed score.
json_like_record.rs
Replay: real traced execution (multi-file project)
fn main() {
let name = "Ada";
let score = 7;
let record = json_record(name, score);
println!("{record}");
}
fn json_record(name: &str, score: i32) -> String {
format!("{{\"name\":\"{}\",\"score\":{score}}}", escape_json(name))
}
fn escape_json(text: &str) -> String {
text.replace('\\', "\\\\").replace('"', "\\\"")
}
fn main() {
let name = "Lin";
let score = 7;
let record = json_record(name, score);
println!("{record}");
}
fn json_record(name: &str, score: i32) -> String {
format!("{{\"name\":\"{}\",\"score\":{score}}}", escape_json(name))
}
fn escape_json(text: &str) -> String {
text.replace('\\', "\\\\").replace('"', "\\\"")
}
fn main() {
let name = "Mira";
let score = 7;
let record = json_record(name, score);
println!("{record}");
}
fn json_record(name: &str, score: i32) -> String {
format!("{{\"name\":\"{}\",\"score\":{score}}}", escape_json(name))
}
fn escape_json(text: &str) -> String {
text.replace('\\', "\\\\").replace('"', "\\\"")
}
name ← "Ada", score ← 7
1fn main() {2 let nam→ "Ada"e = "Ada"; //@name="Ada", "Lin", "Mira"3 let scor→ 7e = 7;4 let record = json_record(nam"Ada"e, scor7e);5 println!("{record}");record ← "{\"name\":\"Ada\",\"score\":7}"
3 let score = 7;4 let recor→ "{\"name\":\"Ada\",\"score\":7}"d = json_record(nam"Ada"e, scor7e);5 println!("{record}");6}output{"name":"Ada","score":7}
name ← "Lin", score ← 7
1fn main() {2 let nam→ "Lin"e = "Lin";3 let scor→ 7e = 7;4 let record = json_record(nam"Lin"e, scor7e);5 println!("{record}");record ← "{\"name\":\"Lin\",\"score\":7}"
3 let score = 7;4 let recor→ "{\"name\":\"Lin\",\"score\":7}"d = json_record(nam"Lin"e, scor7e);5 println!("{record}");6}output{"name":"Lin","score":7}
name ← "Mira", score ← 7
1fn main() {2 let nam→ "Mira"e = "Mira";3 let scor→ 7e = 7;4 let record = json_record(nam"Mira"e, scor7e);5 println!("{record}");record ← "{\"name\":\"Mira\",\"score\":7}"
3 let score = 7;4 let recor→ "{\"name\":\"Mira\",\"score\":7}"d = json_record(nam"Mira"e, scor7e);5 println!("{record}");6}output{"name":"Mira","score":7}
JSON-shaped text
The output follows a simple JSON object shape for this fixed record.
escaping
`escape_json` protects text before embedding it between quotes.
crate boundary
This example shows the concept without adding an external serialization crate.