AJSON - 一個好用且快速的RUST JSON解析器
阿新 • • 發佈:2019-12-31
AJSON - 一個好用且快的RUST JSON解析器 專案地址: github
demo 自己試一試
示例JSON
{
"name": {"first": "Tom","last": "Anderson"},"age":37,"children": ["Sara","Alex","Jack"],"fav.movie": "Deer Hunter","friends": [
{"first": "Dale","last": "Murphy","age": 44,"nets": ["ig","fb","tw"]},{"first": "Roger","last": "Craig" ,"age": 68,"nets": ["fb",{"first": "Jane","age": 47,"tw"]}
]
}
複製程式碼
小試牛刀
如果需要獲取Tom的姓氏,只需要一行程式碼:
extern crate ajson;
fn main() {
let lastname = ajson::get(json,"name.last");
println!("name is {}",last);
}
複製程式碼
讓我們來數一數tom有一個孩子吧:
extern crate ajson;
fn main() {
let num = ajson::get(json,"children.#" );
println!("Tom has {} kids!",num.as_u64());
}
複製程式碼
他們分別叫什麼名字呢:
extern crate ajson;
fn main() {
let children = ajson::get(json,"children");
for kid in children.as_array() {
println!("my name is {}",kid);
}
}
複製程式碼
等等!第三個孩子叫什麼名字來著,讓他再說一遍:
extern crate ajson;
fn main() {
let third_kid = ajson::get(json,"children.#.2");
println!("sir! my name is {}",third_kid);
}
複製程式碼
Tom最愛的電影是什麼?
extern crate ajson;
fn main() {
let fav_movie = ajson::get(json,"fav.movie");
// fav_movie.exsits() == false;
}
複製程式碼
什麼?沒有最愛的電影?不可能,是你的姿勢不對
extern crate ajson;
fn main() {
let fav_movie = ajson::get(json,"fav\.movie");
println!("fav movie {}",fav_movie);
}
複製程式碼
我聽說Tom有好幾個朋友,他們分別叫什麼?
extern crate ajson;
fn main() {
let names = ajson:get(json,"friends.#.first");
for first_name in names.as_array() {
println!("name {}",first_name);
}
}
複製程式碼
未完待續...