Based on Chupakabra303's JSON parser for RouterOS.
ℹ️Consider using a much faster built-in :deserialize command.
Usage:
# Load library (set library functions to global variables)
/system script run "JParseFunctions"; global JSONLoad; global JSONLoads; global JSONUnload
# Parse data and print `ParsedResults[0].ParsedText` value
global content "{\"ParsedResults\": [{\"ParsedText\": \"Hello, world!\"}]}"
put ([$JSONLoads $content]->"ParsedResults"->0->"ParsedText")
set content
# or load JSON from file
put ([$JSONLoad "tmp"]->"ParsedResults"->0->"ParsedText")
# Unload library (clear global variables)
$JSONUnload
Since RouterOS 7.13beta
Mikrotik made this project obsolete by adding :serialize and :deserialize commands for converting values to/from JSON.
# Parse data and print `ParsedResults[0].ParsedText` value
global content "{\"ParsedResults\": [{\"ParsedText\": \"Hello, world!\"}]}"
put ([deserialize from=json value=$content]->"ParsedResults"->0->"ParsedText")
set content
# or load JSON from file
put ([deserialize from=json [/file/get "tmp" contents]]->"ParsedResults"->0->"ParsedText")