Native.ahk
example
Code: Select all
#Include Native.ahk
js := Native.LoadModule('ahk-json\' (A_PtrSize * 8) 'bit\ahk-json.dll')['JSON']
obj1 := js.parse('[null,true,false,3123,"5345.432",{"ke":[42.4234]}]')
obj2 := JSON.parse('[null,true,false,3123,"5345.432",{"ke":[42.4234]}]')
str1 := JSON.stringify(obj1)
str2 := JSON.stringify(obj2)
MsgBox str1 '`n' str2 '`n' JSON.stringify(obj1, 4)
class JSON {
static __New() {
Native.LoadModule('ahk-json\' (A_PtrSize * 8) 'bit\ahk-json.dll', ['JSON'])
this.DefineProp('true', {value: 1})
this.DefineProp('false', {value: 0})
this.DefineProp('null', {value: ''})
}
static parse(str) => 1
static stringify(obj, space := 0) => 1
}
Performance testing, parse 32mb json file then dump it.
cpp-json
parse: 828ms stringify: 532ms
viewtopic.php?f=83&t=70235
HotkeyIt's Yaml and JSON parser
https://github.com/thqby/ahk2_lib/blob/master/JSON.ahk
Modified version
parse: 6172ms stringify: 9609ms
viewtopic.php?f=83&t=74799&hilit=json
TheArkive's JSON Serializer
parse: 11328ms stringify: 10766ms