@boundlessgeo/jsonix

中文文档
2.4.3发布于 2017/06/01CommonJS近 30 天下载 2789

Jsonix(为XML的JSON接口)是一个JavaScript库,允许在XML和JSON结构之间转换.

中文使用文档
文档目录6 节
  1. 示例
  2. 生成绘图
  3. 将 XML 分析为 JS
  4. 将JS 序列化为 XML
  5. Jsonix 特性
  6. 文档

日记

  • Jsonix(为XML的JSON接口)是一个JavaScript库,允许您在XML和JSON结构之间转换.
  • 通过 Jsonix 您可以将 XML 解析为 JSON( 这个进程叫做 解除挂载)或以 XML 形式将 JSON 序列化(这叫做 排列) (中文(简体) ).
  • 这些转换是基于可手动写入或由XML Schema生成的可声明的XML/JSON映射.

Jsonix 的优点 :

  • 结构严密
  • 类型安全
  • 双向
  • (可选) XML Schema 驱动

另见其他 Jsonix 特性。 。 。 .

示例

这里有个例子 定购单计划a (试试看) 在 JSFiddle 网上) (中文(简体) ).

生成绘图

java -jar node_modules/jsonix/lib/jsonix-schema-compiler-full.jar
  -d mappings -p PO purchaseorder.xsd

生成用于 purchaseorder.xsd 计划 mappings\PO.js; 绘图将放置在变量中 PO。 。 。 .

将 XML 分析为 JS

// Include or require PO.js so that PO variable is available
// For instance, in node.js:
var PO = require('./mappings/PO').PO;

// First we construct a Jsonix context - a factory for unmarshaller (parser)
// and marshaller (serializer)
var context = new Jsonix.Context([PO]);

// Then we create a unmarshaller
var unmarshaller = context.createUnmarshaller();

// Unmarshal an object from the XML retrieved from the URL
unmarshaller.unmarshalURL('po.xml',
    // This callback function will be provided
    // with the result of the unmarshalling
    function (unmarshalled) {
        // Alice Smith
        console.log(unmarshalled.value.shipTo.name);
        // Baby Monitor
        console.log(unmarshalled.value.items.item[1].productName);
    });

你也可以这样 unmarshalString, (中文(简体) ), unmarshalDocument 和(节点下) unmarshalFile。 。 。 .

将JS 序列化为 XML

// Create a marshaller
var marshaller = context.createMarshaller();

// Marshal a JavaScript Object as XML (DOM Document)
var doc = marshaller.marshalDocument({
    name: {
        localPart: "purchaseOrder"
    },
    value: {
        orderDate: { year: 1999, month: 10, day: 20 },
        shipTo: {
            country: "US",
            name: "Alice Smith",
            street: "123 Maple Street",
            city: "Mill Valley",
            state: "CA",
            zip: 90952
        },
        billTo: { /* ... */ },
        comment: 'Hurry, my lawn is going wild!',
        items: { /* ... */ }
    }
});

你也可以这样 marshalString。 。 。 .

Jsonix 特性

  • 在几乎所有现代浏览器中运行
  • 运行在 节点.js
  • 使用通用JS模块、AMD模块和香草(全局,没有任何模块加载器)运行
  • 双向(XML - > JS以及JS - > XML)
  • 执行 排列 (将 JavaScript 对象序列化为 XML)
    • 因此支持字符串数据和 DOM 节点
  • 执行 解除挂载 (从 XML 分析一个 JavaScript 对象)
    • 支持字符串数据、 DOM 节点、 URL 或文件( 有节点
  • 由可控制 JavaScript 对象如何转换成 XML 或反之相向的宣告性 XML/JS 映射驱动
  • 绘图可以基于 XML Schema 自动生成
  • 强结构 - XML/ 对象映射描述 JavaScript 对象的结构
  • 强类型 - XML 侧的字符串内容和JavaScript 侧的值之间的转换由声明属性类型控制
  • 提供可扩展类型系统
    • 支持大多数 XML Schema 简单类型( 插入 QNames)
    • 支持列举、列表和联盟简单类型
    • 允许添加自己的简单类型
    • 支持由多个属性组成的复杂类型
    • 扩展后产生的复杂类型支持
  • 提供高级财产系统
    • XML 内容的字符串处理值、 属性、 元素、 元素、 元素参考属性
    • 任意属性, XML 内容的“ 放松” 处理的任何元素属性

文档

版本与发布记录

@boundlessgeo/jsonix 共发布 2 个版本,首次发布于 2017/05/30;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.4.3latest2017/06/019 年前
2.4.22017/05/309 年前

关于 @boundlessgeo/jsonix 的常见问题

@boundlessgeo/jsonix 是什么?

Jsonix(为XML的JSON接口)是一个JavaScript库,允许在XML和JSON结构之间转换.

如何安装 @boundlessgeo/jsonix?

在项目目录运行 npm install @boundlessgeo/jsonix,或使用 pnpm add / yarn add / bun add。

@boundlessgeo/jsonix 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/boundlessgeo__jsonix 是否存在。

@boundlessgeo/jsonix 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@boundlessgeo/jsonix 可以商用吗?

@boundlessgeo/jsonix 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@boundlessgeo/jsonix 的下载量有多少?

根据 npm 官方下载统计,@boundlessgeo/jsonix 在 2026/10/09 – 2026/11/07 这 30 天内被下载 2,789 次,日均约 93 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@boundlessgeo/jsonix 还在维护吗?

最新版本 2.4.3 发布于 2017/06/01(9 年前);至今共发布 2 个版本,其中过去 12 个月发布了 0 个;首次发布于 2017/05/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。