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
(Perl) 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.
use chilkat(); # 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. $sb = chilkat::CkStringBuilder->new(); $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: $jsonArray = chilkat::CkJsonArray->new(); $success = $jsonArray->LoadSb($sb); if ($success != 1) { print $jsonArray->lastErrorText() . "\r\n"; exit; } # Get some information from each record in the array. $numRecords = $jsonArray->get_Size(); $i = 0; while ($i < $numRecords) { print "------ Record " . $i . " -------" . "\r\n"; # jsonRecord is a JsonObject $jsonRecord = $jsonArray->ObjectAt($i); # Examine information for this record $numTelefones = $jsonRecord->SizeOfArray("telefones"); print "Number of telefones: " . $numTelefones . "\r\n"; $j = 0; while ($j < $numTelefones) { $jsonRecord->put_J($j); print " telefones numero: " . $jsonRecord->stringOf("telefones[j].numero") . "\r\n"; print " telefones tipo: " . $jsonRecord->stringOf("telefones[j].tipo") . "\r\n"; print " telefones id: " . $jsonRecord->stringOf("telefones[j].id") . "\r\n"; $j = $j + 1; } print "cnpj: " . $jsonRecord->stringOf("cnpj") . "\r\n"; print "rua: " . $jsonRecord->stringOf("rua") . "\r\n"; # ... $numContatos = $jsonRecord->SizeOfArray("contatos"); print "Number of contatos: " . $numContatos . "\r\n"; $j = 0; while ($j < $numContatos) { $jsonRecord->put_J($j); $numTelefones = $jsonRecord->SizeOfArray("contatos[j].telefones"); print " Number of telefones: " . $numTelefones . "\r\n"; $k = 0; while ($k < $numTelefones) { $jsonRecord->put_K($k); print " telefones numero: " . $jsonRecord->stringOf("contatos[j].telefones[k].numero") . "\r\n"; print " telefones tipo: " . $jsonRecord->stringOf("contatos[j].telefones[k].tipo") . "\r\n"; print " telefones id: " . $jsonRecord->stringOf("contatos[j].telefones[k].id") . "\r\n"; $k = $k + 1; } print " cargo: " . $jsonRecord->stringOf("contatos[j].cargo") . "\r\n"; $numEmails = $jsonRecord->SizeOfArray("contatos[j].emails"); print " Number of emails: " . $numEmails . "\r\n"; $k = 0; while ($k < $numEmails) { $jsonRecord->put_K($k); print " emails email: " . $jsonRecord->stringOf("contatos[j].emails[k].email") . "\r\n"; print " emails tipo: " . $jsonRecord->stringOf("contatos[j].emails[k].tipo") . "\r\n"; print " emails id: " . $jsonRecord->stringOf("contatos[j].emails[k].id") . "\r\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.