1. 程式人生 > 程式設計 >AJSON - 一個好用且快速的RUST JSON解析器

AJSON - 一個好用且快速的RUST JSON解析器

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);
    }
}
複製程式碼

未完待續...