danharper/jsonx

JSONx是IBM用于将JSON表示为XML的标准

v0.1.0 2015-11-22 16:07 UTC

This package is auto-updated.

Last update: 2024-09-05 09:29:10 UTC


README

Latest Stable Version License

这是一个实现IBM标准格式的库,用于将JSON表示为XML。提供对JSONx的读取和写入支持。JSONx规范草案可以在此处找到

为什么?! 这也是我最初的反应。然而,当你尝试将一个使用JSON的系统与另一个使用XML的系统集成时,它非常有用,而不需要做出可能很大的更改。

安装

composer require danharper/jsonx

用法

$jsonx = new danharper\JSONx\JSONx;

$jsonx->toJSONx([
  'foo' => [ 'bar', true, 2, 3.14, null, [], (object) [] ]
]);

/*
<?xml version="1.0" encoding="UTF-8"?>
<json:object xmlns:json="http://www.ibm.com/xmlns/prod/2009/jsonx" xsi:schemaLocation="http://www.datapower.com/schemas/json jsonx.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <json:array name="foo">
    <json:string>bar</json:string>
    <json:boolean>true</json:boolean>
    <json:number>2</json:number>
    <json:number>3.14</json:number>
    <json:null/>
    <json:array/>
    <json:object/>
  </json:array>
</json:object>
*/

$jsonx->fromJSONx('
<?xml version="1.0" encoding="UTF-8"?>
<json:object xmlns:json="http://www.ibm.com/xmlns/prod/2009/jsonx" xsi:schemaLocation="http://www.datapower.com/schemas/json jsonx.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <json:array name="foo">
    <json:string>bar</json:string>
    <json:boolean>true</json:boolean>
    <json:number>2</json:number>
    <json:number>3.14</json:number>
    <json:null/>
    <json:array/>
    <json:object/>
  </json:array>
</json:object>
');

/*
object(stdClass)#180 (1) {
  ["foo"]=> array(7) {
    [0]=> string(3) "bar"
    [1]=> bool(true)
    [2]=> int(2)
    [3]=> float(3.14)
    [4]=> NULL
    [5]=> array(0) {
    }
    [6]=> object(stdClass)#173 (0) {
    }
  }
}
*/

集成

想要仅通过一个中间件将完整的XML支持添加到你的Laravel API吗?请查看danharper/laravel-jsonx

想要自动转换你的PSR-7兼容的消息吗?请查看danharper/psr7-jsonx