Jump to content
FabianoSouza

Ler dados externos em JSON

Recommended Posts

Pessoal, estou iniciando agora em Wordpress. Mas já me viro bem com HTML,  CSS, Javascript, ASP Clássico e SQL Server.

 

Meu primeiro desafio com WP é saber como faço para receber uma string em JSON de outro site.

Essa string contém registros de um banco de dados, então precisarei montar uma tabela em HTML para exibir dos dados...

 

Quero saber onde, dentro do WORDPRESS, eu consigo faze isso. É direto no código fonte? Dá pra usar plugin??

 

Por onde sigo??

 

Obrigado.

Share this post


Link to post
Share on other sites

@FabianoSouza Fala Jovem. Então, a base do WP é PHP, sendo assim, você pode trabalhar com as funções:

file_get_contents () : Função do PHP usada para ler um arquivo em uma string.
json_decode () : Função que pega uma string JSON e a converte em uma variável PHP que pode ser uma matriz ou um objeto.

Depois disso, é só fazer o loop para montar a sua tabela com os dados. Um exemplo bem básico:

$json = file_get_contents('your_url');
$obj = json_decode($json, true);
foreach ($obj as $key => $val) {
  if(!is_array($val)) {
    print $key." : ".$val . "<br>";
  }
}

Dentro do WP você tem algumas alternativas para apresentação dos dados, isso depende de como será a manutenção e o que será melhor, por exemplo, se o site é seu e você vai gerenciar, se é para algum cliente, tema próprio ou de terceiros, entre outros, mas de um modo geral você pode:

Criar uma página e no modo code (dentro do próprio editor) adicionar as funções/rotinas a esta página;

Criar a função com as rotinas no arquivo "functions.php" por exemplo e chamar esta função dentro das páginas;

Criar um widget ou seu próprio plugin com essa funcionalidade;

Utilizar um plugin de terceiros.

 

Enfim, não sei se vai ajudar muito mas espero que tenha dado um norte, qualquer coisa estamos aí.

Abs.

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

  • Similar Content

    • By ZeroEnd
      Boa tarde.
       
      Gostaria que me ajudassem em uma dúvida, pois estou aprendendo. 
      Tenho um arquivo com o seguinte código.
       
      Ex:
      <?php $dados = '{"nome":"Antonio", "endereco":"Rua que sobe e desce", "telefone": "+55 xx 9 9xxxx-xxxx"}'; $obj = json_decode($dados); echo "Nome: $obj->nome<br>"; echo "Endereço: $obj->endereco<br>"; echo "Telefone: $obj->telefone<br>";  
      Bom esse retorna: 
       
      Nome: Antonio
      Endereço: Rua que sobe e desce
      Telefone: +55 xx 9 9xxxx-xxxx
       
      Agora o problema que enfrento é que eu quero usar um arquivo .json externo, mas não sei o que fazer.
      ex:
      nome-do-arquivo.json
       
      {"nome":"Antonio", "endereco":"Rua que sobe e desce", "telefone": "+55 xx 9 9xxxx-xxxx"}  
      Como que eu faria para chamar o arquivo com php.
       
      Desde já agradeço pela ajuda.
    • By thiagocola
      Eu peguei esse JSON no site do iFood e estou com dúvida de como converter esses 8 números em Time (HH:mm).
      Já tentei timestamp mas 8 dígitos é muito pequeno e já tentei ticks.
      Estou usando C#.
       
      "openingHours": [
                        {
                          "dayOfWeek": "MONDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "TUESDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "WEDNESDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "THURSDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "FRIDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "SATURDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "SUNDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        }
                      ]
       
      Estou achando que tenho que fazer algum tipo de multiplicação ou em última hipótese, esse valor é algum identificador interno do sistema deles.
       
      Tentei converter assim:
       
      DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
       
      var openingTime = dtDateTime.AddSeconds(13500000).ToLocalTime();
      // {06/06/1970 03:00:00}
       
      var closingTime = dtDateTime.AddSeconds(97140000).ToLocalTime();
      // {29/01/1973 05:20:00}
       
      Mas os valores que retornam não fazem sentido pra mim.
       
    • By Marcos PP
      Tenho que retornar os dados desta URL e transformar em variaves em PHP

      Ja tentei alguns exemplos mas so me retorna Null

      http://betontec.fortiddns.com:8082/api/login?usuario=joeliton&senha=123

       
      $data = file_get_contents('http://betontec.fortiddns.com:8082/api/login?usuario=joeliton&senha=123'); $data = json_decode($data,true); var_dump($data);  
    • By robertdccaetano
      Pessoal boa tarde, tenho uma dúvida em relação a um problema que estou enfrentando aqui no php ao codificar, podem me ajudar por favor?
       
      É o seguinte, precisava passar dois objetos para o json_encode(), e capturar o atributo "nome" deles num fragmento, porém o callBack passando pelo json_encode está levando só um objeto, observem o print por favor.
       
      Obs: Ja iterei pelo foreach, mas mesmo assim está passando só um objeto pelo encode 



    • By Guilherme Luiz
      Olá pessoal,
       
      Estou com uma pequena dúvida em relação a buscar dados em json no MySQL.
      No meu banco eu tenho uma table com o seguinte campo em json.
       
      table - contacts
      column - groups_id
       
      Na coluna groups_id eu armazeno ids de grupos em json por exemplo:
      ["252","222","666"]  
      Quando eu realizo a seguinte query
      SELECT * FROM user_contacts WHERE JSON_CONTAINS(group_id, '["252"]')  
      Beleza... Ele me resulta em todos os contatos que possuem o registro 252.
      O que acontece é que essa table é 1 > N, ou seja, um contato pode fazer parte de vários grupos, sendo assim:
       
      quando eu consulto
      SELECT * FROM user_contacts WHERE JSON_CONTAINS(group_id, '["252","222"]') Ele não me resulta nos contatos que estão com grupo 252 ou 222.
      Ele me resulta nos contatos que estão com o grupo 252 e 222, ou seja, ele me retorna somente os contatos que o group id tenha ["252","222"]
       
      Eu vi que nessa situação eu poderia criar um INDEX na minha tabela usando:
      ALTER TABLE user_contacts ADD INDEX groups ( (CAST(group_id->'$.groups' AS UNSIGNED ARRAY)) );  
      Mas o CAST() na versão que Mysqli que eu possuo no servidor 4.6.X me retorna Syntax error.
      Alguem teria uma sugestão ou luz de qual caminho posso seguir nessa situação sem que seja atualizando a versão do bd?
       
       
×

Important Information

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