Re: Module für PureBasic 5.2x LTS
Verfasst: 22.05.2014 19:17
JSON.pbi (kenmo)
Ein Modul um JSON-Dateien zu erzeugen, ändern, speichern und laden.
Ein Modul um JSON-Dateien zu erzeugen, ändern, speichern und laden.
Code: Alles auswählen
; JSON management
Declare.i CreateJSON(MainNodeType = #JSON_Object)
Declare.i CatchJSON(*Address, Length)
Declare.i LoadJSON(File.s)
Declare.i SaveJSON(*JSON, File.s, Format = #JSON_Default, IndentSize = 4)
Declare.i FreeJSON(*JSON)
; JSON node management
Declare.i CreateJSONNode(*Parent, Type = #JSON_Object, Key.s = "", *Previous = #JSON_Last)
Declare.i DeleteJSONNode(*Node)
Declare.i AddJSONString(*Parent, Text.s, Key.s = "", *Previous = #JSON_Last)
Declare.i AddJSONNumber(*Parent, Value.f, Key.s = "", *Previous = #JSON_Last)
Declare.i AddJSONBoolean(*Parent, Value, Key.s = "", *Previous = #JSON_Last)
Declare.i AddJSONNull(*Parent, Key.s = "", *Previous = #JSON_Last)
Declare.i AddJSONArray(*Parent, Key.s = "", *Previous = #JSON_Last)
Declare.i AddJSONObject(*Parent, Key.s = "", *Previous = #JSON_Last)
; JSON node iteration
Declare.i MainJSONNode(*JSON)
Declare.i ChildJSONNode(*Node, Index = #JSON_First)
Declare.i ParentJSONNode(*Node)
Declare.i NextJSONNode(*Node)
Declare.i PreviousJSONNode(*Node)
Declare.i NamedJSONNode(*Node, Path.s)
Declare.i FindJSONNodeByID(*Node, Text.s, Key.s = "id")
; JSON node access
Declare.s GetJSONNodeText(*Node)
Declare.f GetJSONNodeValue(*Node)
Declare.i GetJSONNodeInteger(*Node)
Declare.s GetJSONNodeKey(*Node)
Declare.i GetJSONChildCount(*Node)
Declare.i GetJSONNodeType(*Node)
Declare.s GetJSONTypeName(Type)
; JSON node modification
Declare.i SetJSONNodeText(*Node, Text.s)
Declare.i SetJSONNodeValue(*Node, Value.f)
Declare.i SetJSONNodeKey(*Node, Key.s)