1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018年6月25日

#1473数据结构

MIT 许可证

10KB
184

flats 构建状态 覆盖率状态 crates.io docs.rs Master API 文档

🥞 将嵌套结构扁平化为单维映射

📦 安装

将以下内容添加到您的 cargo 项目的 Cargo.toml 文件中。

[dependencies]
flats = "0.1"

🤸 使用

#[macro_use]
extern crate serde_json;
extern crate flats;

use std::collections::BTreeMap;
use flats::{flatten_value, Scalar};

fn main() {
  let flat: BTreeMap<String, Scalar> = flatten_value(
    json!({
      "name": "John Doe",
      "address": {
          "city": "nyc"
      },
      "phones": [
        "+44 1234567",
        "+44 2345678"
      ]
    })
 );

 let mut expected: BTreeMap<String, Scalar> = BTreeMap::new();
 expected.insert("name".into(), "John Doe".into());
 expected.insert("address.city".into(), "nyc".into());
 expected.insert("phones[0]".into(), "+44 1234567".into());
 expected.insert("phones[1]".into(), "+44 2345678".into());

 assert_eq!(expected, flat);
}

Doug Tangren (softprops) 2018

依赖项

~0.7–1.4MB
~32K SLoC