/AutoHotkey-JSON

JSON module for AutoHotkey

Primary LanguageAutoHotkey

JSON and Jxon

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) or 0 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()