Bug: 272102666

Clone this repo:
  1. 2fae679 Edit METADATA file am: a06f2430f9 am: 91d0e4d229 am: 0a1fa1b65a by Sadaf Ebrahimi · 1 year, 2 months ago android15-automotiveos-dev android15-platform-release android15-prebuilt-test android15-qpr1-release android15-qpr1-s3-release android15-qpr1-s4-release android15-qpr1-s5-release android15-release android15-s1-release android15-security-release android15-tests-dev android15-tests-release main master aml_adb_351010000 aml_ads_351017080 aml_ads_351121120 aml_art_350913340 aml_art_351011240 aml_art_351011340 aml_art_351110180 aml_ase_351010000 aml_ase_351112060 aml_ase_351114000 aml_cbr_350910020 aml_cbr_351011020 aml_cbr_351111000 aml_cfg_351010000 aml_con_351010000 aml_con_351110000 aml_doc_350915120 aml_doc_351012120 aml_doc_351113060 aml_ext_350912020 aml_ext_351122080 aml_ext_351312060 aml_hef_350921160 aml_hef_351016140 aml_hef_351120040 aml_ips_351010000 aml_ips_351111040 aml_med_350914000 aml_med_351010060 aml_mpr_350914160 aml_mpr_351013100 aml_mpr_351013160 aml_mpr_351113060 aml_mpr_351113100 aml_net_350911020 aml_net_351010000 aml_net_351010020 aml_net_351111100 aml_net_351111140 aml_odp_351020000 aml_odp_351121040 aml_per_350910080 aml_per_351014000 aml_per_351112280 aml_per_351112300 aml_res_351011000 aml_res_351111020 aml_rkp_350910000 aml_rkp_351011000 aml_sch_351010000 aml_sdk_350910000 aml_sdk_351110000 aml_sta_350911020 aml_sta_351110040 aml_tet_350911120 aml_tet_351010220 aml_tet_351110060 aml_tz6_351010000 aml_uwb_350911040 aml_uwb_351011040 aml_wif_350912040 aml_wif_351010040 aml_wif_351110060 android-15.0.0_r1 android-15.0.0_r10 android-15.0.0_r11 android-15.0.0_r12 android-15.0.0_r13 android-15.0.0_r2 android-15.0.0_r3 android-15.0.0_r4 android-15.0.0_r5 android-15.0.0_r6 android-15.0.0_r7 android-15.0.0_r8 android-15.0.0_r9 android-cts-15.0_r1 android-cts-15.0_r2 android-platform-15.0.0_r1 android-platform-15.0.0_r2 android-platform-15.0.0_r3 android-platform-15.0.0_r4 android-security-15.0.0_r1 android-security-15.0.0_r2 android-security-15.0.0_r3 android-security-15.0.0_r4 android-vts-15.0_r1 android-vts-15.0_r2 frc_350820260 frc_350820420 frc_350820440 frc_350820660 frc_350820860 frc_350820960 frc_350822020
  2. 63c2795 Edit METADATA file am: a06f2430f9 am: f8cedac782 am: f8f2670856 by Sadaf Ebrahimi · 1 year, 2 months ago
  3. 0a1fa1b Edit METADATA file am: a06f2430f9 am: 91d0e4d229 by Sadaf Ebrahimi · 1 year, 2 months ago
  4. f8f2670 Edit METADATA file am: a06f2430f9 am: f8cedac782 by Sadaf Ebrahimi · 1 year, 2 months ago
  5. f8cedac Edit METADATA file am: a06f2430f9 by Sadaf Ebrahimi · 1 year, 2 months ago

tinyjson

version CI

tinyjson is a library to parse/generate JSON format document.

Goals of this library are

  • Simplicity: This library uses standard containers like Vec or HashMap as its internal representation and exposes it to users. Users can operate JSON values via the standard APIs. And it keeps this crate as small as possible.
  • Explicit: This library does not hide memory allocation from users. You need to allocate memory like Vec, String, HashMap by yourself. It is good for readers of your source code to show where memory allocations happen. And you can have control of how memory is allocated (e.g. allocating memory in advance with with_capacity method).
  • No dependencies: This library is built on top of only standard libraries.
  • No unsafe code: This library is built with Safe Rust.
  • Well tested: This library is tested with famous test suites:

Documentation

Requirements

Rust stable toolchain.

Installation

Add this crate to dependencies section of your Cargo.toml

[dependencies]
tinyjson = "2"

Example

use tinyjson::JsonValue;
use std::collections::HashMap;
use std::convert::TryInto;

let s = r#"
    {
        "bool": true,
        "arr": [1, null, "test"],
        "nested": {
            "blah": false,
            "blahblah": 3.14
        },
        "unicode": "\u2764"
    }
"#;

// Parse from strings
let parsed: JsonValue = s.parse().unwrap();

// Access to inner value represented with standard containers
let object: &HashMap<_, _> = parsed.get().unwrap();
println!("Parsed HashMap: {:?}", object);

// Generate JSON string
println!("{}", parsed.stringify().unwrap());
// Generate formatted JSON string with indent
println!("{}", parsed.format().unwrap());

// Convert to inner value represented with standard containers
let object: HashMap<_, _> = parsed.try_into().unwrap();
println!("Converted into HashMap: {:?}", object);

// Create JSON values from standard containers
let mut m = HashMap::new();
m.insert("foo".to_string(), true.into());
let mut v = JsonValue::from(m);

// Access with `Index` and `IndexMut` operators quickly
println!("{:?}", v["foo"]);
v["foo"] = JsonValue::from("hello".to_string());
println!("{:?}", v["foo"]);

See the document to know all APIs.

Repository

https://github.com/rhysd/tinyjson

License

the MIT License