![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 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 } } Note: This example requires Chilkat v11.0.0 or greater.
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Handle hoJson String sJsonStr Variant vAbcObj Handle hoAbcObj Variant vXArray Handle hoXArray Variant vBObj Handle hoBObj Variant vDocRoot Handle hoDocRoot String sTemp1 Integer iTemp1 Move False To iSuccess 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 = False) Begin Get ComLastErrorText Of hoJson To sTemp1 Showln sTemp1 Procedure_Return End // Get the "abc" object. Get Create (RefClass(cComChilkatJsonObject)) To hoAbcObj If (Not(IsComObjectCreated(hoAbcObj))) Begin Send CreateComObject of hoAbcObj End Get pvComObject of hoAbcObj to vAbcObj Get ComObjectOf2 Of hoJson "abc" vAbcObj To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoJson To sTemp1 Showln sTemp1 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 Create (RefClass(cComChilkatJsonArray)) To hoXArray If (Not(IsComObjectCreated(hoXArray))) Begin Send CreateComObject of hoXArray End Get pvComObject of hoXArray to vXArray Get ComArrayOf2 Of hoAbcObj "x" vXArray To iSuccess // Navigate to the 2nd object contained within the array. This contains members b1 and b2 Get Create (RefClass(cComChilkatJsonObject)) To hoBObj If (Not(IsComObjectCreated(hoBObj))) Begin Send CreateComObject of hoBObj End Get pvComObject of hoBObj to vBObj Get ComObjectAt2 Of hoXArray 1 vBObj To iSuccess // 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 Create (RefClass(cComChilkatJsonObject)) To hoDocRoot If (Not(IsComObjectCreated(hoDocRoot))) Begin Send CreateComObject of hoDocRoot End Get pvComObject of hoDocRoot to vDocRoot Get ComGetDocRoot2 Of hoBObj vDocRoot To iSuccess // 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 End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.