Skip to content

wandercn/jsonmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jsonmap

JsonMap for store values of multiple types value in one Map.

Example

use jsonmap::JsonMap;

fn main() {
    let mut kv_map = JsonMap::new();

    let mut obj = JsonMap::new();
    obj.insert("userid", "1000230203".into());
    obj.insert("name ", "李四".into());
    obj.insert("年龄", 29.into());

    kv_map.insert("key1", 42.into());
    kv_map.insert("key2", 190.50_f64.into());
    kv_map.insert("key3", "中国".into());
    kv_map.insert(
        "key4",
        vec![1_i32.into(), "b".into(), 10.into(), 64.0.into()].into(),
    );
    kv_map.insert("userInfo", obj.into());

    // 使用 keys 方法获取所有键的集合,并打印每个键和对应的值
    println!("Keys:");
    for key in kv_map.keys() {
        if let Some(value) = kv_map.get(key) {
            println!("Key: {}, Value: {}", key, value);
        }
    }

    // 使用 values 方法获取所有值的集合的不可变引用,并打印每个值
    println!("Values:");
    for value in kv_map.values() {
        println!("Value: {}", value);
    }

    // 使用 values_mut 方法获取所有值的集合的可变引用,并修改每个值
    for value in kv_map.values_mut() {
        println!("value: {}", &value)
    }

    // 使用 iter 方法迭代访问 KvMap 中的键值对
    println!("Iterating with iter:");
    for (key, value) in kv_map.iter() {
        println!("Key: {}, Value: {}", key, value);
    }
    // 将 Map 转换为 JSON 字符串
    let json_string = serde_json::to_string(&kv_map).unwrap();
    println!("JSON String: {}", json_string);

    // 使用 into_iter 方法获取所有权,并打印每个键值对的键和值
    println!("Iterating with into_iter:");
    for (key, value) in kv_map.into_iter() {
        println!("Key: {}, Value: {}", key, value);
    }
}


result

Keys:
Key: key3, Value: 中国
Key: key4, Value: [1, b, 10, 64]
Key: key1, Value: 42
Key: userInfo, Value: {name : 李四 , 年龄: 29 , userid: 1000230203 , }
Key: key2, Value: 190.5
Values:
Value: 中国
Value: [1, b, 10, 64]
Value: 42
Value: {name : 李四 , 年龄: 29 , userid: 1000230203 , }
Value: 190.5
value: 中国
value: [1, b, 10, 64]
value: 42
value: {name : 李四 , 年龄: 29 , userid: 1000230203 , }
value: 190.5
Iterating with iter:
Key: key3, Value: 中国
Key: key4, Value: [1, b, 10, 64]
Key: key1, Value: 42
Key: userInfo, Value: {name : 李四 , 年龄: 29 , userid: 1000230203 , }
Key: key2, Value: 190.5
JSON String: {"key3":"中国","key4":[1,"b",10,64.0],"key1":42,"userInfo":{"name ":"李四","年龄":29,"userid":"1000230203"},"key2":190.5}
Iterating with into_iter:
Key: key3, Value: 中国
Key: key4, Value: [1, b, 10, 64]
Key: key1, Value: 42
Key: userInfo, Value: {name : 李四 , 年龄: 29 , userid: 1000230203 , }
Key: key2, Value: 190.5

Cargo.toml


[dependencies]
jsonmap =  "0.1.0"
serde_json = "1.0"

About

JsonMap for store values of multiple types value in one Map.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages