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
(PureBasic) Loading and Parsing a JSON ArrayA JSON array is JSON that begins with "[" and ends with "]". For example, this is a JSON array that contains 3 JSON objects. [{"name":"jack"},{"name":"john"},{"name":"joe"}]A JSON object, however, is JSON that begins with "{" and ends with "}". For example, this JSON is an object that contains an array. {"pets":[{"name":"jack"},{"name":"john"},{"name":"joe"}]}This example shows how loading a JSON array is different than loading a JSON object.
IncludeFile "CkJsonArray.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() strJsonArray.s = "[{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "jack" + Chr(34) + "},{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "john" + Chr(34) + "},{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "joe" + Chr(34) + "}]" strJsonObject.s = "{" + Chr(34) + "pets" + Chr(34) + ":[{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "jack" + Chr(34) + "},{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "john" + Chr(34) + "},{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "joe" + Chr(34) + "}]}" ; A JSON array must be loaded using JsonArray: jsonArray.i = CkJsonArray::ckCreate() If jsonArray.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonArray::ckLoad(jsonArray,strJsonArray) ; Examine the values: i.i = 0 While i < CkJsonArray::ckSize(jsonArray) jsonObj.i = CkJsonArray::ckObjectAt(jsonArray,i) Debug Str(i) + ": " + CkJsonObject::ckStringOf(jsonObj,"name") CkJsonObject::ckDispose(jsonObj) i = i + 1 Wend ; Output is: ; 0: jack ; 1: john ; 2: joe ; A JSON object must be loaded using JsonObject jsonObject.i = CkJsonObject::ckCreate() If jsonObject.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoad(jsonObject,strJsonObject) ; Examine the values: i = 0 numPets.i = CkJsonObject::ckSizeOfArray(jsonObject,"pets") While i < numPets CkJsonObject::setCkI(jsonObject, i) Debug Str(i) + ": " + CkJsonObject::ckStringOf(jsonObject,"pets[i].name") i = i + 1 Wend ; Output is: ; 0: jack ; 1: john ; 2: joe CkJsonArray::ckDispose(jsonArray) CkJsonObject::ckDispose(jsonObject) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.