#json #annotations #data #generation #command-line #command-line-tool

bin+lib jxpand

一个用于通过注解扩展 JSON 数据的工具,便于代码生成

1 个不稳定版本

0.1.0 2023年11月29日

#2820 in 命令行工具

MIT 许可证

25KB
483

关于 jxpand

jxpand 是一个从命令行扩展 JSON 值的工具。

扩展后的 JSON 包含额外的注解,使其更容易与如 mustache 这样的模板引擎一起使用。

API 目前仍在开发中,直到 1.0 版本发布,可能会发生破坏性更改。

注解

JSON 数组扩展以包括与数组中项相关的一些额外的注解。

例如,数组

[ "foo", "bar", "baz" ]

被扩展为

{
    "values": [
        {
            "value": "foo",
            "first": true,
            "last": false,
            "index": 0
        },
        {
            "value": "bar",
            "first": false,
            "last": false,
            "index": 1
        },
        {
            "value": "baz",
            "first": false,
            "last": true,
            "index": 2
        }
    ],
    "count": 3
}
  • count 注解通过将数组替换为一个包含 count 键和 values 键中的原始数组的对象来添加。
  • first 注解对于数组中的第一个项是 true
  • last 注解对于数组中的最后一个项是 true
  • 为数组中的每个项添加 index 注解,其中包含项的索引。

合并模式

而不是将对象包装在数组中,您可以将注解合并到现有对象中。每个注解都添加一个前缀。

例如,数组

[
    {
        "foo": "bar"
    },
    {
        "foo": "baz"
    }
]

被扩展为

{
    "values": [
        {
            "foo": "bar",
            "_first": true,
            "_last": false,
            "_index": 0
        },
        {
            "foo": "baz",
            "_first": false,
            "_last": true,
            "_index": 1
        }
    ],
    "count": 2
}

禁用注解

默认情况下启用所有注解,禁用注解将相应地调整输出。如果启用计数注解,则数组将不再被包装。

目前,禁用所有项级注解仍会导致每个项被包装。

命令行界面

jxpand 工具可以用于从命令行扩展 JSON 值。可以通过运行

$ jxpand --help

它支持

  • 禁用单个注解
  • 调整前缀(用于合并注解)
  • 将注解合并到现有对象中
  • 美化输出

路线图

  • 当所有项级注解都被禁用时,防止项被包装
  • 添加“连接符”以支持在所有除最后一个元素之外的所有元素上添加任意可访问的值。例如,可以在数组的每个项末尾(除了最后一个项)添加逗号。
  • 循环注释,可用于遍历值列表。例如,在渲染模板时可以遍历颜色列表。

如果您想看到某些内容,请提交问题。

依赖项

~1.5–2.4MB
~47K SLoC