cocobelgica / Autohotkey Json
Programming Languages
JSON and Jxon
JSON lib for AutoHotkey
Requirements: Latest version of AutoHotkey (v1.1+ or v2.0-a+)
Version: v2.1.1 (updated 01/30/2016)
License: WTFPL
JSON.ahk (class)
Works on both AutoHotkey v1.1 and v2.0a
Installation
Use #Include JSON.ahk
or copy into a function library folder and use #Include <JSON>
.
.Load()
Parses a JSON string into an AHK value
Syntax:
value := JSON.Load( text [, reviver ] )
Return Value:
An AutoHotkey value (object, string, number)
Parameter(s):
- text [in] - JSON formatted string
-
reviver [in, opt] - function object, prescribes how the value originally produced by parsing is transformed, before being returned. Similar to JavaScript's
JSON.parse()
reviver parameter.
.Dump()
Converts an AHK value into a JSON string
Syntax:
str := JSON.Dump( value, [, replacer, space ] )
Return Value:
A JSON formatted string
Parameter(s):
- value [in] - AutoHotkey value (object, string, number)
-
replacer [in, opt] - function object, alters the behavior of the stringification process. Similar to JavaScript's
JSON.stringify()
replacer parameter. -
space [in, opt] -if space is a non-negative integer or string, then JSON array elements and object members will be pretty-printed with that indent level. Blank(
""
) (the default) or0
selects the most compact representation. Using a positive integer space indents that many spaces per level, this number is capped at 10 if it's larger than that. If space is a string (such as"`t"
), the string (or the first 10 characters of the string, if it's longer than that) is used to indent each level.
Jxon.ahk (function)
Similar to the JSON class above just implemented as a function. Unlike JSON (class) above, this implementation provides reading from and writing to file(Removed Jxon_Read
and Jxon_Write
). Works on both AutoHotkey v1.1 and v2.0a
Installation
Use #Include Jxon.ahk
or #Include <Jxon>
. Must be copied into a function library folder for the latter.
Jxon_Load()
Deserialize src (a JSON formatted string) to an AutoHotkey object
Syntax:
obj := Jxon_Load( ByRef src [ , object_base := "", array_base := "" ] )
Parameter(s):
- src [in, ByRef] - JSON formatted string or path to the file containing JSON formatted string.
-
object_base [in, opt] - an object to use as prototype for objects(
{}
) created during parsing. -
array_base [in, opt] - an object to use as prototype for arrays(
[]
) created during parsing.
Jxon_Dump()
Serialize obj to a JSON formatted string
Syntax:
str := Jxon_Dump( obj [ , indent := "" ] )
Return Value:
A JSON formatted string.
Parameter(s):
- obj [in] - this argument has the same meaning as in JSON.Dump()
- indent [in, opt] - this argument has the same meaning as in JSON.Dump()