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) Insert JSON Array into another JSON ObjectSee more JSON ExamplesDemonstrates how to insert a JSON array into a JSON object.
IncludeFile "CkJsonArray.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; Imagine we have two separate JSON objects. jsonA.i = CkJsonObject::ckCreate() If jsonA.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckUpdateString(jsonA,"ciphertext","encryptedData") CkJsonObject::ckUpdateInt(jsonA,"status",200) CkJsonObject::ckUpdateString(jsonA,"error","errorMsg") CkJsonObject::setCkEmitCompact(jsonA, 0) Debug CkJsonObject::ckEmit(jsonA) ; jsonA contains: ; { ; "ciphertext": "encryptedData", ; "status": 200, ; "error": "errorMsg" ; } jsonB.i = CkJsonObject::ckCreate() If jsonB.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckUpdateString(jsonB,"users[0].role","Surgeon") CkJsonObject::ckUpdateNewArray(jsonB,"users[0].sub_roles") CkJsonObject::ckUpdateBool(jsonB,"users[0].viewable_for_sharing",1) CkJsonObject::ckUpdateInt(jsonB,"users[0].eula_create_date",123) CkJsonObject::ckUpdateString(jsonB,"users[1].role","Support") CkJsonObject::ckUpdateString(jsonB,"users[1].sub_roles[0]","Tech") CkJsonObject::ckUpdateString(jsonB,"users[1].sub_roles[1]","Service") CkJsonObject::ckUpdateBool(jsonB,"users[1].viewable_for_sharing",1) CkJsonObject::ckUpdateInt(jsonB,"users[1].eula_create_date",123) CkJsonObject::setCkEmitCompact(jsonB, 0) Debug CkJsonObject::ckEmit(jsonB) ; jsonB contains: ; { ; "users": [ ; { ; "role": "Surgeon", ; "sub_roles": [], ; "viewable_for_sharing": true, ; "eula_create_date": 1649108922482 ; }, ; { ; "role": "Support", ; "sub_roles": [ ; "Tech", ; "Service" ; ], ; "viewable_for_sharing": true, ; "eula_create_date": 1649108951523 ; } ; ] ; } ; Let's say we want to insert jsonB into jsonA to get this: ; { ; "ciphertext": "encryptedData", ; "status": 200, ; "error": "errorMsg", ; "users": [ ; { ; "role": "Surgeon", ; "sub_roles": [], ; "viewable_for_sharing": true, ; "eula_create_date": 1649108922482 ; }, ; { ; "role": "Support", ; "sub_roles": [ ; "Tech", ; "Service" ; ], ; "viewable_for_sharing": true, ; "eula_create_date": 1649108951523 ; } ; ] ; } ; First add an empty array at the desired location (-1 means append to end). CkJsonObject::ckAddArrayAt(jsonA,-1,"users") ; The destination is the empty "users" array, the source is the populated "users" array in jsonB. jsonUsersDest.i = CkJsonObject::ckArrayOf(jsonA,"users") jsonUsersSrc.i = CkJsonObject::ckArrayOf(jsonB,"users") ; Copy the array items from source to dest CkJsonArray::ckAppendArrayItems(jsonUsersDest,jsonUsersSrc) CkJsonArray::ckDispose(jsonUsersDest) CkJsonArray::ckDispose(jsonUsersSrc) Debug CkJsonObject::ckEmit(jsonA) ; The end result is this: ; { ; "ciphertext": "encryptedData", ; "status": 200, ; "error": "errorMsg", ; "users": [ ; { ; "role": "Surgeon", ; "sub_roles": [ ; ], ; "viewable_for_sharing": true, ; "eula_create_date": 123 ; }, ; { ; "role": "Support", ; "sub_roles": [ ; "Tech", ; "Service" ; ], ; "viewable_for_sharing": true, ; "eula_create_date": 123 ; } ; ] ; } CkJsonObject::ckDispose(jsonA) CkJsonObject::ckDispose(jsonB) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.