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
(PHP ActiveX) Loading and Parsing a Complex JSON ArrayThis example loads a JSON array containing more complex data. It shows how to parse (access) various values contained within the JSON.
<?php // This is the JSON we'll be loading: // [ // { // "telefones": [ // { // "numero": "19995555555", // "tipo": "T", // "id": 2541437 // } // ], // "cnpj": "11395551000164", // "rua": "R XAVIER AUGUSTO ROGGE, 22", // "complemento": "", // "contatos": [ // ], // "tipo": "J", // "razao_social": "SOUP BRASIL LTDA - ME", // "nome_fantasia": "SOUP BRASIL", // "bairro": "ABC DOS COLIBRIS", // "cidade": "TEST", // "inscricao_estadual": "222.102.222.116", // "observacao": "", // "id": 2209595, // "ultima_alteracao": "2016-12-26 16:22:34", // "cep": "13555000", // "suframa": "", // "estado": "SP", // "emails": [ // { // "email": "somebody@terra.com.br", // "tipo": "T", // "id": 1065557 // } // ], // "excluido": false // }, // { // "telefones": [ // ], // "cnpj": "12496555500180", // "rua": "AV ROLF WIEST, 100", // "complemento": "ANDAR 7 SALA 612 A 620", // "contatos": [ // ], // "tipo": "J", // "razao_social": "SIMPLE SOFTWARE LTDA", // "nome_fantasia": "", // "bairro": "DOM ZETIRO", // "cidade": "APARTVILLE", // "inscricao_estadual": "", // "observacao": "", // "id": 2255594, // "ultima_alteracao": "2016-12-26 16:28:31", // "cep": "89255505", // "suframa": "", // "estado": "SC", // "emails": [ // ], // "excluido": false // }, // { // "telefones": [ // { // "numero": "1938655556", // "tipo": "T", // "id": 2555438 // } // ], // "cnpj": "00003555500153", // "rua": "AV ABCDEF PINTO CATAO, 18", // "complemento": "", // "contatos": [ // { // "telefones": [ // { // "numero": "1999655554", // "tipo": "T", // "id": 2555559 // } // ], // "cargo": "zzz de compras", // "nome": "Gerard", // "emails": [ // { // "email": "gerard@terra.com.br", // "tipo": "T", // "id": 1065559 // } // ], // "id": 844485, // "excluido": false // } // ], // "tipo": "J", // "razao_social": "TIDY TECNOLOGIA LTDA - EPP", // "nome_fantasia": "TIDY", // "bairro": "TUNA", // "cidade": "JAGUAR", // "inscricao_estadual": "395.222.441.222", // "observacao": "ligar sempre depois das 14hs", // "id": 2255597, // "ultima_alteracao": "2016-12-28 07:31:52", // "cep": "13555500", // "suframa": "", // "estado": "SP", // "emails": [ // { // "email": "xi@tidy.com.br", // "tipo": "T", // "id": 10655558 // } // ], // "excluido": false // } // ] // // Construct a StringBuilder containing the above JSON array. // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.StringBuilder') $sb = new COM("Chilkat.StringBuilder"); $bCrlf = 1; $sb->AppendLine('[',$bCrlf); $sb->AppendLine(' {',$bCrlf); $sb->AppendLine(' \'telefones\': [',$bCrlf); $sb->AppendLine(' {',$bCrlf); $sb->AppendLine(' \'numero\': \'19995555555\',',$bCrlf); $sb->AppendLine(' \'tipo\': \'T\',',$bCrlf); $sb->AppendLine(' \'id\': 2541437',$bCrlf); $sb->AppendLine(' }',$bCrlf); $sb->AppendLine(' ],',$bCrlf); $sb->AppendLine(' \'cnpj\': \'11395551000164\',',$bCrlf); $sb->AppendLine(' \'rua\': \'R XAVIER AUGUSTO ROGGE, 22\',',$bCrlf); $sb->AppendLine(' \'complemento\': \'\',',$bCrlf); $sb->AppendLine(' \'contatos\': [',$bCrlf); $sb->AppendLine(' ],',$bCrlf); $sb->AppendLine(' \'tipo\': \'J\',',$bCrlf); $sb->AppendLine(' \'razao_social\': \'SOUP BRASIL LTDA - ME\',',$bCrlf); $sb->AppendLine(' \'nome_fantasia\': \'SOUP BRASIL\',',$bCrlf); $sb->AppendLine(' \'bairro\': \'ABC DOS COLIBRIS\',',$bCrlf); $sb->AppendLine(' \'cidade\': \'TEST\',',$bCrlf); $sb->AppendLine(' \'inscricao_estadual\': \'222.102.222.116\',',$bCrlf); $sb->AppendLine(' \'observacao\': \'\',',$bCrlf); $sb->AppendLine(' \'id\': 2209595,',$bCrlf); $sb->AppendLine(' \'ultima_alteracao\': \'2016-12-26 16:22:34\',',$bCrlf); $sb->AppendLine(' \'cep\': \'13555000\',',$bCrlf); $sb->AppendLine(' \'suframa\': \'\',',$bCrlf); $sb->AppendLine(' \'estado\': \'SP\',',$bCrlf); $sb->AppendLine(' \'emails\': [',$bCrlf); $sb->AppendLine(' {',$bCrlf); $sb->AppendLine(' \'email\': \'somebody@terra.com.br\',',$bCrlf); $sb->AppendLine(' \'tipo\': \'T\',',$bCrlf); $sb->AppendLine(' \'id\': 1065557',$bCrlf); $sb->AppendLine(' }',$bCrlf); $sb->AppendLine(' ],',$bCrlf); $sb->AppendLine(' \'excluido\': false',$bCrlf); $sb->AppendLine(' },',$bCrlf); $sb->AppendLine(' {',$bCrlf); $sb->AppendLine(' \'telefones\': [',$bCrlf); $sb->AppendLine(' ],',$bCrlf); $sb->AppendLine(' \'cnpj\': \'12496555500180\',',$bCrlf); $sb->AppendLine(' \'rua\': \'AV ROLF WIEST, 100\',',$bCrlf); $sb->AppendLine(' \'complemento\': \'ANDAR 7 SALA 612 A 620\',',$bCrlf); $sb->AppendLine(' \'contatos\': [',$bCrlf); $sb->AppendLine(' ],',$bCrlf); $sb->AppendLine(' \'tipo\': \'J\',',$bCrlf); $sb->AppendLine(' \'razao_social\': \'SIMPLE SOFTWARE LTDA\',',$bCrlf); $sb->AppendLine(' \'nome_fantasia\': \'\',',$bCrlf); $sb->AppendLine(' \'bairro\': \'DOM ZETIRO\',',$bCrlf); $sb->AppendLine(' \'cidade\': \'APARTVILLE\',',$bCrlf); $sb->AppendLine(' \'inscricao_estadual\': \'\',',$bCrlf); $sb->AppendLine(' \'observacao\': \'\',',$bCrlf); $sb->AppendLine(' \'id\': 2255594,',$bCrlf); $sb->AppendLine(' \'ultima_alteracao\': \'2016-12-26 16:28:31\',',$bCrlf); $sb->AppendLine(' \'cep\': \'89255505\',',$bCrlf); $sb->AppendLine(' \'suframa\': \'\',',$bCrlf); $sb->AppendLine(' \'estado\': \'SC\',',$bCrlf); $sb->AppendLine(' \'emails\': [',$bCrlf); $sb->AppendLine(' ],',$bCrlf); $sb->AppendLine(' \'excluido\': false',$bCrlf); $sb->AppendLine(' },',$bCrlf); $sb->AppendLine(' {',$bCrlf); $sb->AppendLine(' \'telefones\': [',$bCrlf); $sb->AppendLine(' {',$bCrlf); $sb->AppendLine(' \'numero\': \'1938655556\',',$bCrlf); $sb->AppendLine(' \'tipo\': \'T\',',$bCrlf); $sb->AppendLine(' \'id\': 2555438',$bCrlf); $sb->AppendLine(' }',$bCrlf); $sb->AppendLine(' ],',$bCrlf); $sb->AppendLine(' \'cnpj\': \'00003555500153\',',$bCrlf); $sb->AppendLine(' \'rua\': \'AV ABCDEF PINTO CATAO, 18\',',$bCrlf); $sb->AppendLine(' \'complemento\': \'\',',$bCrlf); $sb->AppendLine(' \'contatos\': [',$bCrlf); $sb->AppendLine(' {',$bCrlf); $sb->AppendLine(' \'telefones\': [',$bCrlf); $sb->AppendLine(' {',$bCrlf); $sb->AppendLine(' \'numero\': \'1999655554\',',$bCrlf); $sb->AppendLine(' \'tipo\': \'T\',',$bCrlf); $sb->AppendLine(' \'id\': 2555559',$bCrlf); $sb->AppendLine(' }',$bCrlf); $sb->AppendLine(' ],',$bCrlf); $sb->AppendLine(' \'cargo\': \'zzz de compras\',',$bCrlf); $sb->AppendLine(' \'nome\': \'Gerard\',',$bCrlf); $sb->AppendLine(' \'emails\': [',$bCrlf); $sb->AppendLine(' {',$bCrlf); $sb->AppendLine(' \'email\': \'gerard@terra.com.br\',',$bCrlf); $sb->AppendLine(' \'tipo\': \'T\',',$bCrlf); $sb->AppendLine(' \'id\': 1065559',$bCrlf); $sb->AppendLine(' }',$bCrlf); $sb->AppendLine(' ],',$bCrlf); $sb->AppendLine(' \'id\': 844485,',$bCrlf); $sb->AppendLine(' \'excluido\': false',$bCrlf); $sb->AppendLine(' }',$bCrlf); $sb->AppendLine(' ],',$bCrlf); $sb->AppendLine(' \'tipo\': \'J\',',$bCrlf); $sb->AppendLine(' \'razao_social\': \'TIDY TECNOLOGIA LTDA - EPP\',',$bCrlf); $sb->AppendLine(' \'nome_fantasia\': \'TIDY\',',$bCrlf); $sb->AppendLine(' \'bairro\': \'TUNA\',',$bCrlf); $sb->AppendLine(' \'cidade\': \'JAGUAR\',',$bCrlf); $sb->AppendLine(' \'inscricao_estadual\': \'395.222.441.222\',',$bCrlf); $sb->AppendLine(' \'observacao\': \'ligar sempre depois das 14hs\',',$bCrlf); $sb->AppendLine(' \'id\': 2255597,',$bCrlf); $sb->AppendLine(' \'ultima_alteracao\': \'2016-12-28 07:31:52\',',$bCrlf); $sb->AppendLine(' \'cep\': \'13555500\',',$bCrlf); $sb->AppendLine(' \'suframa\': \'\',',$bCrlf); $sb->AppendLine(' \'estado\': \'SP\',',$bCrlf); $sb->AppendLine(' \'emails\': [',$bCrlf); $sb->AppendLine(' {',$bCrlf); $sb->AppendLine(' \'email\': \'xi@tidy.com.br\',',$bCrlf); $sb->AppendLine(' \'tipo\': \'T\',',$bCrlf); $sb->AppendLine(' \'id\': 10655558',$bCrlf); $sb->AppendLine(' }',$bCrlf); $sb->AppendLine(' ],',$bCrlf); $sb->AppendLine(' \'excluido\': false',$bCrlf); $sb->AppendLine(' }',$bCrlf); $sb->AppendLine(']',$bCrlf); // Load the JSON array into a JsonArray: // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.JsonArray') $jsonArray = new COM("Chilkat.JsonArray"); $success = $jsonArray->LoadSb($sb); if ($success != 1) { print $jsonArray->LastErrorText . "\n"; exit; } // Get some information from each record in the array. $numRecords = $jsonArray->Size; $i = 0; while ($i < $numRecords) { print '------ Record ' . $i . ' -------' . "\n"; // jsonRecord is a Chilkat.JsonObject $jsonRecord = $jsonArray->ObjectAt($i); // Examine information for this record $numTelefones = $jsonRecord->SizeOfArray('telefones'); print 'Number of telefones: ' . $numTelefones . "\n"; $j = 0; while ($j < $numTelefones) { $jsonRecord->J = $j; print ' telefones numero: ' . $jsonRecord->stringOf('telefones[j].numero') . "\n"; print ' telefones tipo: ' . $jsonRecord->stringOf('telefones[j].tipo') . "\n"; print ' telefones id: ' . $jsonRecord->stringOf('telefones[j].id') . "\n"; $j = $j + 1; } print 'cnpj: ' . $jsonRecord->stringOf('cnpj') . "\n"; print 'rua: ' . $jsonRecord->stringOf('rua') . "\n"; // ... $numContatos = $jsonRecord->SizeOfArray('contatos'); print 'Number of contatos: ' . $numContatos . "\n"; $j = 0; while ($j < $numContatos) { $jsonRecord->J = $j; $numTelefones = $jsonRecord->SizeOfArray('contatos[j].telefones'); print ' Number of telefones: ' . $numTelefones . "\n"; $k = 0; while ($k < $numTelefones) { $jsonRecord->K = $k; print ' telefones numero: ' . $jsonRecord->stringOf('contatos[j].telefones[k].numero') . "\n"; print ' telefones tipo: ' . $jsonRecord->stringOf('contatos[j].telefones[k].tipo') . "\n"; print ' telefones id: ' . $jsonRecord->stringOf('contatos[j].telefones[k].id') . "\n"; $k = $k + 1; } print ' cargo: ' . $jsonRecord->stringOf('contatos[j].cargo') . "\n"; $numEmails = $jsonRecord->SizeOfArray('contatos[j].emails'); print ' Number of emails: ' . $numEmails . "\n"; $k = 0; while ($k < $numEmails) { $jsonRecord->K = $k; print ' emails email: ' . $jsonRecord->stringOf('contatos[j].emails[k].email') . "\n"; print ' emails tipo: ' . $jsonRecord->stringOf('contatos[j].emails[k].tipo') . "\n"; print ' emails id: ' . $jsonRecord->stringOf('contatos[j].emails[k].id') . "\n"; $k = $k + 1; } $j = $j + 1; } $i = $i + 1; } // The output for the above code is: // ------ Record 0 ------- // Number of telefones: 1 // telefones numero: 19995555555 // telefones tipo: T // telefones id: 2541437 // cnpj: 11395551000164 // rua: R XAVIER AUGUSTO ROGGE, 22 // Number of contatos: 0 // ------ Record 1 ------- // Number of telefones: 0 // cnpj: 12496555500180 // rua: AV ROLF WIEST, 100 // Number of contatos: 0 // ------ Record 2 ------- // Number of telefones: 1 // telefones numero: 1938655556 // telefones tipo: T // telefones id: 2555438 // cnpj: 00003555500153 // rua: AV ABCDEF PINTO CATAO, 18 // Number of contatos: 1 // Number of telefones: 1 // telefones numero: 1999655554 // telefones tipo: T // telefones id: 2555559 // cargo: zzz de compras // Number of emails: 1 // emails email: gerard@terra.com.br // emails tipo: T // emails id: 1065559 // ?> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.