#json-format #json-xml #json #xml #xml2json #xml-to-json #xml-to-string

rsxml2json

将 XML 转换为 JSON 格式的 Rust 库

2 个版本

使用旧的 Rust 2015

0.1.1 2024 年 7 月 9 日
0.1.0 2024 年 6 月 2 日

11#json-xml

Download history 162/week @ 2024-06-01 9/week @ 2024-06-08 2/week @ 2024-06-15 106/week @ 2024-07-06 8/week @ 2024-07-13

99 每月下载量

MIT 许可证

10KB
149

rsxml2json

将 XML 转换为 JSON 格式的 Rust 库

依赖项

use rsxml2json::{Convert, ConvertConfig};

用法

示例代码 1:返回 String

use rsxml2json::{Convert, ConvertConfig};

fn main() {
    //init
    let convert = Convert::new(ConvertConfig::default());
    //xml data
    let xml_str = r#"<?xml version="1.0" encoding="UTF-8"?><hello>world</hello>"#.to_string();
    
    let data_option = convert.execute(xml_str);
    let json_str = match data_option {
        Ok(value) => value,
        Err(_) => return,
    };
    
    println!("json_str = {}",json_str);
}

示例代码 2:返回 serde_json::Value

use rsxml2json::{Convert, ConvertConfig};
use serde_json;

fn main() {
    // Initialize
    let convert = Convert::new(ConvertConfig::default());
    // XML data
    let xml_str = r#"<?xml version="1.0" encoding="UTF-8"?><hello>world</hello>"#.to_string();
    
    let data_option = convert.execute_json(xml_str);
    let json_value = match data_option {
        Ok(value) => value,
        Err(err) => {
            println!("Error: {:?}", err);
            return;
        }
    };
    
    let pretty_json = serde_json::to_string_pretty(&json_value).expect("Unable to convert to pretty JSON");
    println!("pretty_json = {}", pretty_json);
}

输入

<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="CGImap 0.0.2">
<bounds minlat="54.0889580" minlon="12.2487570" maxlat="54.0913900" maxlon="12.2524800"/>
<foo>bar</foo>
</osm>

输出

{
  "osm": {
    "-generator": "CGImap 0.0.2",
    "-version": "0.6",
    "bounds": {
      "-maxlat": "54.0913900",
      "-maxlon": "12.2524800",
      "-minlat": "54.0889580",
      "-minlon": "12.2487570"
    },
    "foo": "bar"
  }
}

贡献

如果您想修复、扩展或改进该项目,请随时为此项目做出贡献。

依赖项

~0.7–1.3MB
~26K SLoC