Escolar Documentos
Profissional Documentos
Cultura Documentos
array_to_json(anyarray [, pretty_bool])
row_to_json(record [, pretty_bool])
JSON
Recurso
de
JavaScript
presente
nos
JSON
XML vs JSON
Velocidade
Dados Abertos
Dados Abertos
http://alagamentos.topical.com.br
http://cmsp.topical.com.br
10
Exemplo em JavaScript
var dados = {
"aluno" :
[
{"nome":"Joo", "provas": [ { "nota":8 }, {"nota":6}, {"nota":10 }, {"nota":2 } ] },
{"nome":"Maria", "provas": [ { "nota":3}, {"nota":5}, {"nota":8 }, {"nota":1 } ] },
{"nome":"Pedro", "provas": [ { "nota":7}, {"nota":6}, {"nota":6 }, {"nota":8 } ] },
]
};
var jsonData = eval(dados);
11
Exemplo em JavaScript
for(i=0;i<jsonData.aluno.length;i++){
document.write(jsonData.aluno[i].nome);
for(j=0;j<jsonData.aluno[i].provas.length;j++){
document.write(jsonData.aluno[i].provas[j].nota);
}
}
12
Preparando Exemplo
CREATE DATABASE nova_versao;
CREATE TABLE alunos(
id serial PRIMARY KEY,
aluno VARCHAR(255)
);
CREATE TABLE provas(
id serial PRIMARY KEY,
id_aluno int,
nota int
);
13
Preparando Exemplo
ALTER TABLE provas ADD CONSTRAINT fk_aluno_nota
FOREIGN KEY(id_aluno) REFERENCES alunos(id);
INSERT INTO alunos(aluno) VALUES ('Aluno1');
INSERT INTO alunos(aluno) VALUES ('Aluno2');
14
Preparando Exemplo
INSERT INTO provas(id_aluno, nota) VALUES (1,10);
INSERT INTO provas(id_aluno, nota) VALUES (1,8);
INSERT INTO provas(id_aluno, nota) VALUES (1,6);
INSERT INTO provas(id_aluno, nota) VALUES (1,5);
INSERT INTO provas(id_aluno, nota) VALUES (2,7);
INSERT INTO provas(id_aluno, nota) VALUES (2,5);
INSERT INTO provas(id_aluno, nota) VALUES (2,8);
INSERT INTO provas(id_aluno, nota) VALUES (2,10);
15
array_to_json
Consulta:
select array_to_json(array(select aluno from
alunos));
Resultado: ["Aluno1","Aluno2"]
16
array_to_json
Consulta:
select array(select z from (select aluno, id
from alunos) as z);
Resultado: {"(Aluno1,1)","(Aluno2,2)"}
18
array_to_json
Consulta:
select
array_to_json(array(select
from
(select
Resultado:
[{"aluno":"Aluno1","id":1},{"aluno":"Aluno2","id":2}]
19
array_to_json
Consulta:
select array_to_json(array(select z from (select
a.aluno, array_to_json(array(select p.nota from provas
p where a.id = p.id_aluno)) as provas from alunos a)
as z));
Resultado:
[{"aluno":"Aluno1","provas":[10,8,6,5]},
{"aluno":"Aluno2","provas":[7,5,8,10]}]
20
row_to_json
Consulta:
select row_to_json(a) from alunos a
select
row_to_json(alunos)
from
alunos
(sem
alias)
Resultado:
{"id":1,"aluno":"Aluno1"}
{"id":2,"aluno":"Aluno2"}
21
Validador Json
http://jsonlint.com/
22