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
(CkPython) 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.
import sys import 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() bCrlf = True 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() success = jsonArray.LoadSb(sb) if (success != True): print(jsonArray.lastErrorText()) sys.exit() # Get some information from each record in the array. numRecords = jsonArray.get_Size() i = 0 while i < numRecords : print("------ Record " + str(i) + " -------") # jsonRecord is a CkJsonObject jsonRecord = jsonArray.ObjectAt(i) # Examine information for this record numTelefones = jsonRecord.SizeOfArray("telefones") print("Number of telefones: " + str(numTelefones)) j = 0 while j < numTelefones : jsonRecord.put_J(j) print(" telefones numero: " + jsonRecord.stringOf("telefones[j].numero")) print(" telefones tipo: " + jsonRecord.stringOf("telefones[j].tipo")) print(" telefones id: " + jsonRecord.stringOf("telefones[j].id")) j = j + 1 print("cnpj: " + jsonRecord.stringOf("cnpj")) print("rua: " + jsonRecord.stringOf("rua")) # ... numContatos = jsonRecord.SizeOfArray("contatos") print("Number of contatos: " + str(numContatos)) j = 0 while j < numContatos : jsonRecord.put_J(j) numTelefones = jsonRecord.SizeOfArray("contatos[j].telefones") print(" Number of telefones: " + str(numTelefones)) k = 0 while k < numTelefones : jsonRecord.put_K(k) print(" telefones numero: " + jsonRecord.stringOf("contatos[j].telefones[k].numero")) print(" telefones tipo: " + jsonRecord.stringOf("contatos[j].telefones[k].tipo")) print(" telefones id: " + jsonRecord.stringOf("contatos[j].telefones[k].id")) k = k + 1 print(" cargo: " + jsonRecord.stringOf("contatos[j].cargo")) numEmails = jsonRecord.SizeOfArray("contatos[j].emails") print(" Number of emails: " + str(numEmails)) k = 0 while k < numEmails : jsonRecord.put_K(k) print(" emails email: " + jsonRecord.stringOf("contatos[j].emails[k].email")) print(" emails tipo: " + jsonRecord.stringOf("contatos[j].emails[k].tipo")) print(" emails id: " + jsonRecord.stringOf("contatos[j].emails[k].id")) 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.