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", "tw"]},
{"first": "Jane", "last": "Murphy", "age": 47, "nets": ["ig", "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);
}
}
未完待续...