Jump to content
Sign in to follow this  
faustino.luiz

Converter Json::Value para array

Recommended Posts

Olá pessoal,

Eu estou criando uma classe de que pega as configurações de um arquivo onde tem o seguinte objeto JSON:

{
"config": [
{"db":[
{
"host":"localhost",
"user":"root",
"pass":"",
"database":"owl_med"
}]
}
]
}

 

Uso o a biblioteca jsoncpp, e ela retorna como resultado do parse, um objeto do tipo JsonValue, eu queria converter esses valores em um array. contendo objetos do tipo char, int e por ai vai.

 

Gostaria de uma ajuda ou ideia de alguém que já trabalha com essa biblioteca ou tem alguma forma de converter. Visto que eu poderia converter os dados, através de um for, mas visto que tenho objetos e array dentro, ele teria que ter um script variante pra abrir o objeto e converter os elementos, da forma que eu tava fazendo aqui não ficava muito dinâmico e teria que colocar um for ou while pra cada novo objeto, ou seja, teria de colocar um for pra cada nível.

 

Desde já agradeço a ajuda.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Gilberto Jr
      Boa tarde.
       
      Eu esto com um probleminha que eu não estou conseguindo resolver.
       
      Estou lendo um json atraves de uma webservice https://jsonplaceholder.typicode.com/photos atraves do codigo abaixo.
       
      <html> <head> <title>Teste</title> <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.4.1.min.js"></script> <!-- Adicionando Javascript --> <script type="text/javascript" > $(document).ready(function(){ $("#search").click(function(){ $.ajax({ type: "GET", dataType: "json", url: "https://jsonplaceholder.typicode.com/photos", success: function(data) { for (var i in data) { //vai passar por todos os objetos dentro do array $("#title").text(data[i]["title"]); $("#id").text(data[i]["id"]); $("#albumId").text(data[i]["albumId"]); $("#thumbnailUrl").attr("src",data[i]["thumbnailUrl"]); $("#url").attr("src",data[i]["url"]); } } }); }) }); // END Function, END ready </script> </head> <body> <input type="button" placeholder="Busca" id="search" value="Buscar"> <section> <div class="container"> <div class="row" id="content"> <br/> <div id="id"></div><br/> <div id="albumId"></div><br/> <div id="title"></div><br/> <img src="" id="thumbnailUrl"><br/> <img src="" id="url"><br/> </div> </div> </section> </body> </html> Eu estou até conseguindo trazer as informações. Porem vem o ultimo dado do JSON, 
       
      E eu também, tenho que mostrar todas as informações do arquivo JSON. Fazer um for para mostrar todos os dados na tela.
       
      Mas eu não estou conseguindo, poderia me ajudar?
       
      Att;
      Gilberto Jr
    • By Regiane Primoni
      Fiz toda integração da API 3.0 da Cielo utilizando o ambiente de teste deu tudo certo, quando coloquei url e credenciais de produção retorna erro 405.
      O certificado + os 3 arquivos cielo estão instalados.
       
      O código:
      <?php
      $array = array(
          "MerchantOrderId" => "2014111703",
          "Payment" => array(
              "Type"=> "CreditCard",   
              "Amount"=> "15700",   
              "Installments"=> "1",   
              "SoftDescriptor"=> "123456789ABCD",
              "CreditCard" => array(
                  "CardNumber" => "4551870000000183",   
                  "Holder" => "Teste Holder",   
                  "ExpirationDate" => "10/2030",   
                  "SecurityCode" => "123",
                  "Brand" => "Visa"
              ),
          ), 
      );
      echo $json = json_encode($array);                                                                           
      $ch = curl_init('https://api.cieloecommerce.cielo.com.br/'); 
      curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "POST");   
      curl_setopt($ch, CURLOPT_POSTFIELDS, $json); 
      curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);  
      curl_setopt($ch, CURLOPT_HTTPHEADER, array(
          'Content-Type: application/json',
          'MerchantId: ' . '8b08ea04-951e-414e-9541-d2d19c36fdf6',
          'MerchantKey: ' . 'QJCRZAUKNODFHXBISETYIJXSTMNTAKSDVEKCISGI',
          'Content-Length: ' . strlen($json))
      );                                                                                                        
      $result = curl_exec ($ch);
      $novo = json_decode($result);
      echo "TID ". $novo->Payment->Tid;
       
      O erro:
      {"MerchantOrderId":"2014111703","Payment":{"Type":"CreditCard","Amount":"15700","Installments":"1","SoftDescriptor":"123456789ABCD","CreditCard":{"CardNumber":"4551870000000183","Holder":"Teste Holder","ExpirationDate":"10\/2030","SecurityCode":"123","Brand":"Visa"}}}
      Server Error
      405 - HTTP verb used to access this page is not allowed.
      The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.
       
      Alguem consegue me ajudar por favor
       
    • By Thalysson Torres
      Estou com problema nesse código, na verdade é uma duvida de como trabalhar melhor com string. Eu quero faze um programa e nele quero receber do usuario, o sexo, caso o usuario digite um nome no local do sexo e seja diferente de Masculino, Feminino... de mensagem de erro. 
       
       
      #include <stdio.h>
      #include <stdlib.h>
      #include <math.h>

      int main()
      {
          char nome [25], sexo;

          
          
      printf("Digite o nome \n");
      scanf("%[\n]", &nome);
      printf("Digite o Sexo:\n Para feminino digite: F \n\n Para masculino digite; M \n");
      scanf("%c",&sexo);
      if (sexo != 'f'|| 'F' || 'M' || 'm')
          printf("Sexo Invalido");
       
       
      ...
       


          
          return 0;
      }
       
    • By evandrofelipe
      Como consigo ler este retorno e jogar para dentro de uma variável?
       
      ["total"]=> int(771) ["page"]=> int(1) ["total_pages"]=> int(78) } ...
      $data = curl_exec($ch);
      $info = json_decode($data, true);
      curl_close($ch);
       
      fiz assim, mas sem sucesso:
      echo '<p>';
      echo $info['buildings']['id'];
      echo '<p>';
       
      fiz assim também e também sem sucesso:
      foreach($info as $registro)
      {$i=$i+1;
      echo $registro->url[$i].'<p>';
      }
       
      agradeço a quem poder ajudar.
    • By joaov369
      Então, preciso fazer um programa em c++ que duplique o valor do vetor se ele for um numero par, até ai tudo bem, e preciso trocar a ordem desse vetor ate a penultima posição, desde a primeira, isso que tá garrando aqui, se alguem puder dar uma olhada no meu codigo.
      #include <iostream> using namespace std; #define n 10 int main() { int a[n], temp; for (int i = 0; i<n; i++) { cin >> a[i]; } for (int i = 0; i<n; i++) { if (a[i] % 2 ==0) a[i]=a[i]*2; } for (int i = 0; i<n-1; i++) { temp=a[i]; a[i]=a[i+1]; temp=a[i]; a[i]=temp; } for (int i = 0; i<n; i++) { cout << a[i] << " " ; } return 0; }  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.