# @boundlessgeo/jsonix 中文文档

规范地址：https://npmcn.com/package/%40boundlessgeo/jsonix/

版本：2\.4\.3
npm 元数据更新时间：2022-06-12T15:26:51.177Z
中文译文更新时间：2026-11-08T12:37:13.313Z
软件包许可：未声明

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40boundlessgeo/jsonix
原文对照：https://npmcn.com/package/%40boundlessgeo/jsonix/?lang=original
项目主页：http://github.com/highsource/jsonix
源码仓库：https://github.com/highsource/jsonix

## 关键信息（来自 npm 元数据）

- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：3 个
- 首次发布：2017-05-30T12:15:35.732Z
- 最新版本发布：2017-06-01T11:20:52.202Z
- 近 30 天下载量：2789（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @boundlessgeo/jsonix
```

也可以使用：`pnpm add @boundlessgeo/jsonix`、`yarn add @boundlessgeo/jsonix`、`bun add @boundlessgeo/jsonix`

## README

# 日记

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

Jsonix 的优点 :

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

另见其他 [Jsonix 特性](https://npmcn.com/package/%40boundlessgeo/jsonix/#readme-jsonix-features)。 。 。 .

## 示例

这里有个例子 [定购单计划a](http://www.w3.org/TR/xmlschema-0/#po.xsd) (试试看) [在 JSFiddle 网上](http://jsfiddle.net/lexi/LP3DC/)) (中文(简体) ).

### 生成绘图

```
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

```javascript
// 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

```javascript
// 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](http://nodejs.org/)
-   使用通用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 内容的“ 放松” 处理的任何元素属性

## 文档

-   [Jsonix GitHub 项目](https://github.com/highsource/jsonix)
-   [Jsonix 维基百科](https://github.com/highsource/jsonix/wiki)

## 常见问题

### @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 和提交记录判断。

