Autor Tópico: gerar json  (Lida 872 vezes)

robsonp

  • Novato
  • *
  • Mensagens: 3
    • Email
gerar json
« Online: Abril 06, 2015, 11:41:24 am »
Eu tenho uma tabela no sqlite com 3 campos id,nome e email. Gostaria de gerar o json da mesma pra usar em uma app android.
Como eu posso fazer isso?

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:gerar json
« Responder #1 Online: Abril 06, 2015, 11:44:42 am »
obtenha um array dos dados e aplica o jason_encode do php

Marcelo Baptista

  • Intermediário
  • ***
  • Mensagens: 104
Re:gerar json
« Responder #2 Online: Abril 06, 2015, 04:41:20 pm »
Um exemplo de exibição em JSON que fiz em uma aplicação Blank bem simples, espero que te ajude:

$sql = "SELECT codigo, descricao, secao, grupo, lojabase FROM cad_mercadorias WHERE lojabase = '001' LIMIT 0, 100";
     
sc_select(resultado,$sql);
     
{
           
  $mercadorias = array();
   
  while (!$resultado->EOF)
 
  {
 
      $mercadorias[] = array('codigo'=> $resultado->fields[0], 'descricao' => utf8_encode($resultado->fields[1]),
               'secao' => $resultado->fields[2], 'grupo' => $resultado->fields[3], 'lojabase' => $resultado->fields[4]);
    
      $resultado->MoveNext();
    
  }
   
  $resultado->Close();

echo json_encode($mercadorias);   
               
}

robsonp

  • Novato
  • *
  • Mensagens: 3
    • Email
Re:gerar json
« Responder #3 Online: Abril 06, 2015, 11:51:47 pm »
Ta aparecendo um erro.

$check_sql = "SELECT _id,
 str_sigla_secao,
 str_nome_secao,
 telefone1,
 telefone2,
 str_email,
 str_sigla_organizacao,
 str_nome_organizacao"
   ."FROM secao";
sc_select(resultado, $check_sql);

{
   $telefones = array();

   while (!$resultado->EOF)
   {
      
      $telefones[] = array('id'=>$resultado->fields[0],
                     'sigla_secao'=>$resultado->fields[1],
                     'nome_secao'=>$resultado->fields[2],
                     'telefone1'=>$resultado->fields[3],
                      'telefone2'=>$resultado->fields[4],
                     'email'=>$resultado->fields[5],
                      'sigla_organizacao'=>$resultado->fields[6],
                     'nome_organizacao'=>$resultado->fields[7]);
      
      $resultado->MoveNext();
   }
   $resultado->Close();
   echo json_encode($telefones);
}

Erro que aparece ao executar o blank

ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object

Fatal error: Call to a member function MoveNext() on a non-object in C:\Program Files (x86)\NetMake\v6\wwwroot\scriptcase\app\ListaTelefonica\json\json.php on line 921

« Última modificação: Abril 06, 2015, 11:58:38 pm por robsonp »

Kleyber

  • Expert
  • *****
  • Mensagens: 2239
    • Email
Re:gerar json
« Responder #4 Online: Abril 07, 2015, 07:21:04 am »
Teu SELECT está errado. Experimente assim:

$check_sql = "SELECT _id,
 str_sigla_secao,
 str_nome_secao,
 telefone1,
 telefone2,
 str_email,
 str_sigla_organizacao,
 str_nome_organizacao FROM secao";
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

robsonp

  • Novato
  • *
  • Mensagens: 3
    • Email
Re:gerar json
« Responder #5 Online: Abril 07, 2015, 07:46:00 am »
Funcionou o select.

Porem já mudei o charset da aplicacao para utf8 e o banco tambem ta em UTF 8, mais continua mostrando outros caracteres em acentos, cedilha, etc.

2ª seção ta aparecendo assim

"nome_secao":"2\u00c2\u00aa SE\u00c3\u0087\u00c3\u0083O",

E tambem tem como o codigo do json aparecer identado dessa maneira, porque tá aparecendo sem identação nenhuma?

Ficar assim o resultado
[
   { 
      "id":"0",
      "sigla_secao":"P2",
      "nome_secao":"2\u00c2\u00aa SE\u00c3\u0087\u00c3\u0083O",
      "telefone1":"34385643",
      "telefone2":"",
      "email":null,
      "sigla_organizacao":"12\u00ba TRT",
      "nome_organizacao":"12\u00ba TRIBUNAL TRABALHO"
   }
]
« Última modificação: Abril 07, 2015, 07:51:53 am por robsonp »

Marcelo Baptista

  • Intermediário
  • ***
  • Mensagens: 104
Re:gerar json
« Responder #6 Online: Abril 07, 2015, 08:08:16 am »
Onde diz: 'nome_secao'=>$resultado->fields[2],  tente: 'nome_secao'=>utf8_encode($resultado->fields[2]),

Obs.: Se não der certo pode ser problema no seu banco de como vc definiu todo ele.