Skip to content

Instantly share code, notes, and snippets.

@navono
Last active February 14, 2024 23:11
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save navono/992727c277bf3478a06540963f48f7e9 to your computer and use it in GitHub Desktop.
Save navono/992727c277bf3478a06540963f48f7e9 to your computer and use it in GitHub Desktop.
parse JSON file by windows batch
:: Read file "package.json" into variable string, removing line breaks.
set string=
for /f "delims=" %%x in (package.json) do set "string=!string!%%x"
rem Remove quotes
set string=%string:"=%
rem Remove braces
set "string=%string:~2,-2%"
rem Change colon+space by equal-sign
set "string=%string:: ==%"
rem Separate parts at comma into individual assignments
set "%string:, =" & set "%"
echo %version%
@jkearins
Copy link

jkearins commented Mar 8, 2023

Nice code. Sample of package.json:

{ "dummy": "invisible", "dbpath": "c:\tmp", "dbname": "hidra" }

Some limitations:

  • Spaces after first '{' and before last '}' are needed
  • No spaces in keys and in values
    "msg": "Hi all" <-- prohibited
  • One space is necessary after ':'
  • First key:value pair is allways unreachable
echo dummy=%dummy%
echo dbpath=%dbpath%
echo dbname=%dbname%

output:

dummy=
dbpath=c:\tmp
dbname=hidra

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment