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
(DataFlex) Get the Root of a JSON DocumentDemonstrates how to get back to the JSON root object from anywhere in the JSON document. This example uses the following JSON document: { "flower": "tulip", "abc": { "x": [ { "a" : 1 }, { "b1" : 100, "b2" : 200 }, { "c" : 3 } ], "y": 200, "z": 200 } }
Use ChilkatAx-win32.pkg Procedure Test Handle hoJson String sJsonStr Boolean iSuccess Variant vAbcObj Handle hoAbcObj Variant vXArray Handle hoXArray Variant vBObj Handle hoBObj Variant vDocRoot Handle hoDocRoot String sTemp1 Integer iTemp1 Boolean bTemp1 Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End Move '{"flower": "tulip","abc":{"x": [{ "a" : 1 },{ "b1" : 100, "b2" : 200 },{ "c" : 3 }],"y": 200,"z": 200}}' To sJsonStr Get ComLoad Of hoJson sJsonStr To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoJson To sTemp1 Showln sTemp1 Procedure_Return End // Get the "abc" object. Get ComObjectOf Of hoJson "abc" To vAbcObj If (IsComObject(vAbcObj)) Begin Get Create (RefClass(cComChilkatJsonObject)) To hoAbcObj Set pvComObject Of hoAbcObj To vAbcObj End Get ComLastMethodSuccess Of hoJson To bTemp1 If (bTemp1 = False) Begin Showln "abc object not found." Procedure_Return End // Side note: The JSON of a sub-part of the document can be emitted from any JSON object: Set ComEmitCompact Of hoAbcObj To False Get ComEmit Of hoAbcObj To sTemp1 Showln sTemp1 // Navigate to the "x" array Get ComArrayOf Of hoAbcObj "x" To vXArray If (IsComObject(vXArray)) Begin Get Create (RefClass(cComChilkatJsonArray)) To hoXArray Set pvComObject Of hoXArray To vXArray End // We'll skip the null check and assume it's non-null... // Navigate to the 2nd object contained within the array. This contains members b1 and b2 Get ComObjectAt Of hoXArray 1 To vBObj If (IsComObject(vBObj)) Begin Get Create (RefClass(cComChilkatJsonObject)) To hoBObj Set pvComObject Of hoBObj To vBObj End // We'll skip the null check and assume it's non-null... // Show that we're at "b1/b2". // The value of "b1" should be "200" Get ComIntOf Of hoBObj "b2" To iTemp1 Showln "b2 = " iTemp1 // Now go back to the JSON doc root: Get ComGetDocRoot Of hoBObj To vDocRoot If (IsComObject(vDocRoot)) Begin Get Create (RefClass(cComChilkatJsonObject)) To hoDocRoot Set pvComObject Of hoDocRoot To vDocRoot End // We'll skip the null check and assume it's non-null... // Pretty-print the JSON doc from the root to show that this is indeed the root. Set ComEmitCompact Of hoDocRoot To False Get ComEmit Of hoDocRoot To sTemp1 Showln sTemp1 Send Destroy of hoDocRoot Send Destroy of hoBObj Send Destroy of hoXArray Send Destroy of hoAbcObj End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.