MyNixOS website logo
Description

Load JSON from files in a directory structure.

Load JSON from files in a directory structure. The object created mirrors the directory structure, using filenames as keys. Useful for breaking apart large JSON structures.

JSON Directory

Provides utilities for reading JSON structures out of directories. Directory entries become keys in a map, and the values are sourced from the contets of each entry.

By default

  • Directories are recured into
  • Files ending with .json are read as JSON values
  • Everything else is interpreted as a string

However, these can be modified with rules, that allow for interpreting any sort of file as JSON.

The example directory in this repository would result in the following JSON value.

{
  "empty": {},
  "a": "This is files will have its contents written into a JSON string.\n",
  "d": {
    "example": "Sometimes it's convenient to embed some raw JSON"
  },
  "b": 42,
  "c": {
    "nested": "You can nest directories to create a tree structure.\n"
  }
}

jsondir

This package also includes an executable for turning directories into JSON blobs.

jsondir [--help] [--rule <SUFFIX> <FILTER> ...]
        [--[no-]default{s,-json,-text}] <ROOT> ...

  Turn a directory structure into a JSON value

 --rule <SUFFIX> <FILTER>     Filter the contents of files with the given
                              SUFFIX with FILTER. The default rules use .json
                              files as is, and treat everything else as strings.
                              Can be specified multiple times. Rule are tried in
                              the order specified.
 --[no-]defaults              Enable or disable the default rules. Default on.
 --[no-]default-json          Enable or disable the .json file rule
 --[no-]default-text          Enable or disable the raw file to JSON string rule.
 <ROOT>                       Directory root to turn into a JSON value

 EXAMPLE
  jsondir --rule '.yml' yaml2json ./my-dir
Metadata

Version

0.1.0.3

Executables (1)

  • bin/jsondir

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows