Last active
February 14, 2024 23:11
-
-
Save navono/992727c277bf3478a06540963f48f7e9 to your computer and use it in GitHub Desktop.
parse JSON file by windows batch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
:: 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% |
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
Let's suppose this is the
package.json
file the script tries to read :Then Batch will take the key
version
from the JSON file as a new variable, which value is theversion
value linked into the JSON file. That's why you can't use this for huge objects such as this one :You would not be able to get the
debug
andproduction
value usingversion
as key.