Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(AutoIt) Using Pre-defined JSON TemplatesDemonstrates how to predefine a JSON template, and then use it to emit JSON with variable substitutions. Note: This example requires Chilkat v9.5.0.67 or greater.
; One way to create JSON is to do it in a straightforward manner: $oJson = ObjCreate("Chilkat.JsonObject") $oJson.EmitCompact = False $oJson.UpdateString("id","0001") $oJson.UpdateString("type","donut") $oJson.UpdateString("name","Cake") $oJson.UpdateString("image.url","images/0001.jpg") $oJson.UpdateInt("image.width",200) $oJson.UpdateInt("image.height",200) $oJson.UpdateString("thumbnail.url","images/thumbnails/0001.jpg") $oJson.UpdateInt("thumbnail.width",32) $oJson.UpdateInt("thumbnail.height",32) ConsoleWrite($oJson.Emit() & @CRLF) ; The JSON created by the above code: ; { ; "id": "0001", ; "type": "donut", ; "name": "Cake", ; "image": { ; "url": "images/0001.jpg", ; "width": 200, ; "height": 200 ; }, ; "thumbnail": { ; "url": "images/thumbnails/0001.jpg", ; "width": 32, ; "height": 32 ; } ; } ; An alternative is to predefine a template, and then use it to emit with variable substitutions. ; For example: $oJsonTemplate = ObjCreate("Chilkat.JsonObject") $oJsonTemplate.UpdateString("id","{$id}") $oJsonTemplate.UpdateString("type","donut") $oJsonTemplate.UpdateString("name","{$name}") $oJsonTemplate.UpdateString("image.url","{$imageUrl}") ; The "i." indicates that it's an integer variable. $oJsonTemplate.UpdateString("image.width","{$i.imageWidth}") $oJsonTemplate.UpdateString("image.height","{$i.imageHeight}") $oJsonTemplate.UpdateString("thumbnail.url","{$thumbUrl}") $oJsonTemplate.UpdateString("thumbnail.width","{$i.thumbWidth}") $oJsonTemplate.UpdateString("thumbnail.height","{$i.thumbHeight}") ; Give this template a name. $oJsonTemplate.Predefine("donut") ; -------------------------------------------------------------------------- ; OK, the template is defined. Defining a template can be done once ; at the start of your program, and you can discard the jsonTemplate object (it ; doesn't need to stick around..) ; Now we can create instances of the JSON object by name: $oJsonDonut = ObjCreate("Chilkat.JsonObject") $oJsonDonut.EmitCompact = False $oJsonDonut.LoadPredefined("donut") ConsoleWrite($oJsonDonut.Emit() & @CRLF) ; The output is this: ; { ; "id": "{$id}", ; "type": "donut", ; "name": "{$name}", ; "image": { ; "url": "{$imageUrl}", ; "width": "{$i.imageWidth}", ; "height": "{$i.imageHeight}" ; }, ; "thumbnail": { ; "url": "{$thumbUrl}", ; "width": "{$i.thumbWidth}", ; "height": "{$i.thumbHeight}" ; } ; } ; Finally, we can substitute variables like this: $oDonutValues = ObjCreate("Chilkat.Hashtable") $oDonutValues.AddStr("id","0001") $oDonutValues.AddStr("name","Cake") $oDonutValues.AddStr("imageUrl","images/0001.jpg") $oDonutValues.AddInt("imageWidth",200) $oDonutValues.AddInt("imageHeight",200) $oDonutValues.AddStr("thumbUrl","images/thumbnails/0001.jpg") $oDonutValues.AddInt("thumbWidth",32) $oDonutValues.AddInt("thumbHeight",32) ; Emit with variable substitutions: Local $bOmitEmpty = True ConsoleWrite($oJsonDonut.EmitWithSubs($oDonutValues,$bOmitEmpty) & @CRLF) ; Output: ; { ; "id": "0001", ; "type": "donut", ; "name": "Cake", ; "image": { ; "url": "images/0001.jpg", ; "width": 200, ; "height": 200 ; }, ; "thumbnail": { ; "url": "images/thumbnails/0001.jpg", ; "width": 32, ; "height": 32 ; } ; } ; Change some of the values: $oDonutValues.AddStr("id","0002") $oDonutValues.AddStr("imageUrl","images/0002.jpg") $oDonutValues.AddStr("thumbUrl","images/thumbnails/0002.jpg") ConsoleWrite($oJsonDonut.EmitWithSubs($oDonutValues,$bOmitEmpty) & @CRLF) ; Output: ; { ; "id": "0002", ; "type": "donut", ; "name": "Cake", ; "image": { ; "url": "images/0002.jpg", ; "width": 200, ; "height": 200 ; }, ; "thumbnail": { ; "url": "images/thumbnails/0002.jpg", ; "width": 32, ; "height": 32 ; } ; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.