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
(PowerShell) 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.
Add-Type -Path "C:\chilkat\ChilkatDotNet47-9.5.0-x64\ChilkatDotNet47.dll" # 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 = New-Object Chilkat.StringBuilder $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 = New-Object Chilkat.JsonArray $success = $jsonArray.LoadSb($sb) if ($success -ne $true) { $($jsonArray.LastErrorText) exit } # Get some information from each record in the array. $numRecords = $jsonArray.Size $i = 0 while ($i -lt $numRecords) { $("------ Record " + $i + " -------") $jsonRecord = $jsonArray.ObjectAt($i) # Examine information for this record $numTelefones = $jsonRecord.SizeOfArray("telefones") $("Number of telefones: " + $numTelefones) $j = 0 while ($j -lt $numTelefones) { $jsonRecord.J = $j $(" telefones numero: " + $jsonRecord.StringOf("telefones[j].numero")) $(" telefones tipo: " + $jsonRecord.StringOf("telefones[j].tipo")) $(" telefones id: " + $jsonRecord.StringOf("telefones[j].id")) $j = $j + 1 } $("cnpj: " + $jsonRecord.StringOf("cnpj")) $("rua: " + $jsonRecord.StringOf("rua")) # ... $numContatos = $jsonRecord.SizeOfArray("contatos") $("Number of contatos: " + $numContatos) $j = 0 while ($j -lt $numContatos) { $jsonRecord.J = $j $numTelefones = $jsonRecord.SizeOfArray("contatos[j].telefones") $(" Number of telefones: " + $numTelefones) $k = 0 while ($k -lt $numTelefones) { $jsonRecord.K = $k $(" telefones numero: " + $jsonRecord.StringOf("contatos[j].telefones[k].numero")) $(" telefones tipo: " + $jsonRecord.StringOf("contatos[j].telefones[k].tipo")) $(" telefones id: " + $jsonRecord.StringOf("contatos[j].telefones[k].id")) $k = $k + 1 } $(" cargo: " + $jsonRecord.StringOf("contatos[j].cargo")) $numEmails = $jsonRecord.SizeOfArray("contatos[j].emails") $(" Number of emails: " + $numEmails) $k = 0 while ($k -lt $numEmails) { $jsonRecord.K = $k $(" emails email: " + $jsonRecord.StringOf("contatos[j].emails[k].email")) $(" emails tipo: " + $jsonRecord.StringOf("contatos[j].emails[k].tipo")) $(" 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.