On this page:
ini-section-params
ini->hash
hash->ini
8.12

4 Converting Ini🔗ℹ

 (require ini/convert) package: ini-lib

procedure

(ini-section-params i section-name)

  (or/c (listof param?) #false)
  i : ini?
  section-name : symbol?

Examples:
> (define my-ini
    (ini (list (section '|| (list (param 'paramA "valueA")))
               (section '|| (list (param 'paramB "valueB"))))))
> (ini-section-params my-ini '||)

(list (param 'paramA "valueA") (param 'paramB "valueB"))

procedure

(ini->hash i)  hash?

  i : ini?

Examples:
> (define my-ini
    (ini (list (section 'configA (list (param 'paramA "valueA")
                                       (param 'paramB "valueB")))
               (section 'configB (list (param 'paramA "valueA")
                                       (param 'paramB "valueB"))))))
> (ini->hash my-ini)

'#hash((configA . #hash((paramA . "valueA") (paramB . "valueB")))

       (configB . #hash((paramA . "valueA") (paramB . "valueB"))))

> (jsexpr->string (ini->hash my-ini))

"{\"configA\":{\"paramA\":\"valueA\",\"paramB\":\"valueB\"},\"configB\":{\"paramA\":\"valueA\",\"paramB\":\"valueB\"}}"

procedure

(hash->ini hsh)  ini?

  hsh : hash?

Examples:
> (define my-hash
    (hash 'configA (hash 'paramA "valueA" 'paramB "valueB")
          'configB (hash 'paramA "valueA" 'paramB "valueB")))
> (hash->ini my-hash)

(ini

 (list

  (section 'configB (list (param 'paramB "valueB") (param 'paramA "valueA")))

  (section 'configA (list (param 'paramB "valueB") (param 'paramA "valueA")))))

> (jsexpr->string my-hash)

"{\"configA\":{\"paramA\":\"valueA\",\"paramB\":\"valueB\"},\"configB\":{\"paramA\":\"valueA\",\"paramB\":\"valueB\"}}"