Autor Tópico: Usando Json [RESOLVIDO]  (Lida 2053 vezes)

camila

  • Intermediário
  • ***
  • Mensagens: 102
Usando Json [RESOLVIDO]
« Online: Janeiro 28, 2014, 02:02:21 pm »
Boa tarde,

alguém sabe como fazer para trazer dados da tabela q ta salvo em json para o scriptcase.

ex:
 
codigo_midia  = {"codigo_midia":"11"},
codigo_artista = {"codigo_artista_banda":"10"},
nome_artista = {"nome_artista_banda":"02"},
« Última modificação: Janeiro 29, 2014, 04:43:33 pm por camila »

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Usando Json
« Responder #1 Online: Janeiro 28, 2014, 06:54:23 pm »
Boa tarde,

alguém sabe como fazer para trazer dados da tabela q ta salvo em json para o scriptcase.

ex:
 
codigo_midia  = {"codigo_midia":"11"},
codigo_artista = {"codigo_artista_banda":"10"},
nome_artista = {"nome_artista_banda":"02"},

Exemplo de uso JSON com PHP.
Código: [Selecionar]
//isso pode ser um resultado do banco.
$string_json = '{"nome":"Eliezer", "sobrenome":"Almeida", "sexo":"macho"}';

$dados = json_decode($string_json);

{nome} = $dados["nome"];
{sobrenome} = $dados["sobrenome"];
{sexo} = $dados["sexo"];


Agora, uma dica.
Acho que não é muito viável ficar guardando informações no banco em JSON não, imagina o trabalho para se alterar apenas um DADO da string, e também imagine um filtro.  Não sei seu cenário, mais da uma analisada melhor para gravar isso em vários campos.

Abraço.
« Última modificação: Janeiro 28, 2014, 06:58:52 pm por Almeida »

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

camila

  • Intermediário
  • ***
  • Mensagens: 102
Re:Usando Json
« Responder #2 Online: Janeiro 28, 2014, 09:15:24 pm »
Almeida,
na verdade estar sendo guardado no banco de duas formas , só outra coisa na app consulta como faço, pensei assim,
criar um campo download , no evento onrecorde faço {download}  = {json_midia}, crio uma função explode.

$download = explode (",", ['nome_midia']);

print_r($download);

algo assim será q funciona?

O banco quem fez foi meu chefe e realmente ta complicado de trabalhar com ele.

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Usando Json
« Responder #3 Online: Janeiro 28, 2014, 10:20:58 pm »
Hum..., não entendi oque quer fazer.
Segue um exemplo usando JSON obtido do banco de dados e criando um campo para donwload no onRecord da grid.
Vamos levar em conta que o campo JSON está na mesma grid carregada na tela. Vou detalhe da tabela exemplo:

Tabela Exemplo:
Tabela: midia;
Campos: id, info1, info2, json_midia.

Conteudo do json_midia: '{"descricao": "Album de Ouro de José", "codigo": 15, "arquivo": "../_lib/midias/midi01.rar"}';

Então temos uma grid em cima dessa tabela, o campo json_midia colocamos escondido, pois contem as informações da mídia.
Criamos um campo virtual chamado "donwload".
Vamos usar as FN do php, json_encode() e json_decode(), a primeira converde um Array para JSON a segunda faz o inverso.

No evento onRecord fazemos assim:
Código: [Selecionar]
$midia = json_decode({json_midia}); //usamos o campo retornado pela grid, poderia fazer um lookup e trazer um dataset e usa-lo.
//com a função json_decode() transformamos a STRING JSON em uma matriz.

//agora criaremos um link no campo "download";
//usaremos o array obtido pela função json_decode();
{download} = "<a class='scGridFieldOddLink' href='" . $midia["arquivo"] . " target='_blank' '>" . $midia["descricao"] . "</a>";
//aqui crimaos um link usando HTML e o array MIDIA obtido a partir do JSON.


Muito bem, esse é um exemplo simples de como usar uma string JSON para fazer um link de download do álbum.
Acho que não é isso que deseja, mais vinculei suas palavras, "download" e "midia" e presumi isso. rsrsrs
Creio que com isso, dê para ter uma ideia é fazer algo, se não ficou claro, deixe mais detalhes.
« Última modificação: Janeiro 28, 2014, 10:23:54 pm por Almeida »

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

camila

  • Intermediário
  • ***
  • Mensagens: 102
Re:Usando Json
« Responder #4 Online: Janeiro 29, 2014, 01:33:57 pm »
Tentei dessa forma acredito q seja esse o caminho,

$json_str = {json_midia};

   $obj = json_decode($json_str);

{nome_midia} = $obj->nome_midia;

mas dá um erro :  Trying to get property of non-object

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Usando Json
« Responder #5 Online: Janeiro 29, 2014, 02:25:35 pm »
Tentei dessa forma acredito q seja esse o caminho,

$json_str = {json_midia};

   $obj = json_decode($json_str);

{nome_midia} = $obj->nome_midia;

mas dá um erro :  Trying to get property of non-object

Apartir de uma versão do PHP , não me lembro qual que ao usar json_decode() já vem em formato objeto, anterior a essa tem que passar um segundo parâmetro, tipo:
Código: [Selecionar]
$json = json_decode(stringjson, false); // o segundo parâmetro faz retornar um Objeto, se não informado(padrao true) retorna um Array, como expliquei para ti acima.
« Última modificação: Janeiro 29, 2014, 02:27:34 pm por Almeida »

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

camila

  • Intermediário
  • ***
  • Mensagens: 102
Re:Usando Json [RESOLVIDO]
« Responder #6 Online: Janeiro 29, 2014, 04:43:54 pm »
Resolvi dessa forma:

$json_str = {json_midia};

$obj = json_decode($json_str, true);


{nome_midia} = $obj[0]["descricao"];
{artista} = $obj[0]["nome_artista_banda"];
{album} = $obj[0]["nome_album"];