Escolar Documentos
Profissional Documentos
Cultura Documentos
Anúncios
Usos do JSON
Ele é usado ao escrever aplicativos baseados em JavaScript que incluem
extensões de navegador e sites.
Serviços da Web e APIs usam o formato JSON para fornecer dados públicos.
Características do JSON
JSON é fácil de ler e escrever.
{
"book": [
{
"id":"01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
},
{
"id":"07",
"language": "C++",
"edition": "second"
"author": "E.Balagurusamy"
}
]
}
Depois de entender o programa acima, vamos tentar outro exemplo. Vamos salvar o
código abaixo como json.htm
<html>
<head>
<title>JSON example</title>
document.write("<hr />");
document.write(object2.language + " programming language can be studied " + "from boo
document.write("<hr />");
</script>
</head>
<body>
</body>
</html>
Agora vamos tentar abrir o json.htm usando o IE ou qualquer outro navegador
habilitado para javascript que produza o seguinte resultado -
Você pode consultar o capítulo Objetos JSON para obter mais informações sobre objetos
JSON.
JSON - sintaxe
Vamos dar uma olhada rápida na sintaxe básica do JSON. A sintaxe JSON é
basicamente considerada como um subconjunto da sintaxe JavaScript; inclui o seguinte
-
As chaves mantêm os objetos e cada nome é seguido por ':' (dois pontos), os
pares nome / valor são separados por, (vírgula).
{
"book": [
{
"id": "01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
},
{
"id": "07",
"language": "C++",
"edition": "second",
"author": "E.Balagurusamy"
}
]
}
JSON - DataTypes
O formato JSON suporta os seguintes tipos de dados -
Valor pode ser uma string, um número, verdadeiro ou falso, null etc
nulo esvaziar
Número
É um formato de ponto flutuante de precisão dupla em JavaScript e depende da
implementação.
Exemplo
Exemplo mostrando Número Tipo de dados, valor não deve ser citado -
Corda
É uma sequência de zero ou mais caracteres Unicode com aspas duplas com
escape de barra invertida.
\ solidus reverso
/ solidus
b backspace
f feed de formulário
n nova linha
r retorno de carro
t guia horizontal
Sintaxe
var json-object-name = { string : "string value", .......}
Exemplo
Exemplo mostrando o tipo de dados da string -
boleano
Inclui valores verdadeiros ou falsos.
Sintaxe
var json-object-name = { string : true/false, .......}
Exemplo
Matriz
É uma coleção ordenada de valores.
Estes são colocados entre colchetes, o que significa que o array começa com. e
termina com.] ..
Matrizes devem ser usadas quando os nomes das chaves são inteiros
sequenciais.
Sintaxe
[ value, .......]
Exemplo
Exemplo mostrando array contendo vários objetos -
{
"books": [
{ "language":"Java" , "edition":"second" },
{ "language":"C++" , "lastName":"fifth" },
{ "language":"C" , "lastName":"third" }
]
}
Objeto
É um conjunto não ordenado de pares nome / valor.
Os objetos são colocados entre chaves, isto é, começa com '{' e termina com
'}'.
Cada nome é seguido por ':' (dois pontos) e os pares nome / valor são
separados por (vírgula).
As chaves devem ser strings e devem ser diferentes umas das outras.
Objetos devem ser usados quando os nomes das chaves forem seqüências
arbitrárias.
Sintaxe
{ string : value, .......}
Exemplo
Exemplo mostrando o objeto -
{
"id": "011A",
"language": "JAVA",
"price": 500,
}
Espaço em branco
Pode ser inserido entre qualquer par de tokens. Pode ser adicionado para tornar um
código mais legível. Exemplo mostra declaração com e sem espaço em branco -
Sintaxe
{string:" ",....}
Exemplo
nulo
Isso significa tipo vazio.
Sintaxe
null
Exemplo
var i = null;
if(i == 1){
document.write("<h1>value is 1</h1>");
}
else{
document.write("<h1>value is null</h1>");
}
Valor JSON
Inclui -
corda
boleano
array
objeto
nulo
Sintaxe
String | Number | Object | Array | TRUE | FALSE | NULL
Exemplo
var i = 1;
var j = "sachin";
var k = null;
JSON - Objetos
Criando Objetos Simples
Objetos JSON podem ser criados com JavaScript. Vamos ver as várias formas de criar
objetos JSON usando JavaScript -
<html>
<head>
<title>Creating Object JSON with JavaScript</title>
</script>
</head>
<body>
</body>
</html>
Agora vamos tentar abrir o Json Object usando o IE ou qualquer outro navegador
ativado por javaScript. Produz o seguinte resultado -
<html>
<head>
<title>Creation of array object in javascript using JSON</title>
"Scala" : [
{ "Name" : "Scala for the Impatient", "price" : 1000 },
{ "Name" : "Scala in Depth", "price" : 1300 }]
}
var i = 0
document.writeln("<table border = '2'><tr>");
for(i = 0;i<books.Pascal.length;i++){
document.writeln("<td>");
document.writeln("<table border = '1' width = 100 >");
document.writeln("<tr><td><b>Name</b></td><td width = 50>" + books.Pascal[i].Name+
document.writeln("<tr><td><b>Price</b></td><td width = 50>" + books.Pascal[i].pric
document.writeln("</table>");
document.writeln("</td>");
}
for(i = 0;i<books.Scala.length;i++){
document.writeln("<td>");
document.writeln("<table border = '1' width = 100 >");
document.writeln("<tr><td><b>Name</b></td><td width = 50>" + books.Scala[i].Name+"
document.writeln("<tr><td><b>Price</b></td><td width = 50>" + books.Scala[i].price
document.writeln("</table>");
document.writeln("</td>");
}
document.writeln("</tr></table>");
</script>
</head>
<body>
</body>
</html>
Agora vamos tentar abrir o objeto Json Array usando o IE ou qualquer outro
navegador ativado por javaScript. Produz o seguinte resultado -
JSON - Esquema
O esquema JSON é uma especificação para o formato baseado em JSON para definir a
estrutura dos dados JSON. Foi escrito sob o rascunho da IETF que expirou em 2011.
Esquema JSON -
línguas Bibliotecas
C WJElement (LGPLv3)
Python Jsonschema
JavaScript Orderly (BSD); JSV; esquema json; Matic (MIT); Dojo; Perseverar
(modificado BSD ou AFL 2.0); schema.js.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product",
"description": "A product from Acme's catalog",
"type": "object",
"properties": {
"id": {
"description": "The unique identifier for a product",
"type": "integer"
},
"name": {
"description": "Name of the product",
"type": "string"
},
"price": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
}
},
Vamos verificar várias palavras-chave importantes que podem ser usadas neste
esquema -
propriedades Define várias chaves e seus tipos de valores, valores mínimo e máximo
a serem usados no arquivo JSON.
[
{
"id": 2,
"name": "An ice sculpture",
"price": 12.50,
},
{
"id": 3,
"name": "A blue mouse",
"price": 25.50,
}
]
Verboso
O XML é mais detalhado do que o JSON, portanto, é mais rápido escrever JSON para
programadores.
Uso de Arrays
O XML é usado para descrever os dados estruturados, que não incluem matrizes,
enquanto o JSON inclui matrizes.
Análise
O método eval do JavaScript analisa o JSON. Quando aplicado ao JSON, o eval retorna
o objeto descrito.
Exemplo
Exemplos individuais de XML e JSON -
JSON
{
"company": Volkswagen,
"name": "Vento",
"price": 800000
}
XML
<car>
<company>Volkswagen</company>
<name>Vento</name>
<price>800000</price>
</car>
Meio Ambiente
A partir do PHP 5.2.0, a extensão JSON é empacotada e compilada no PHP por padrão.
Funções JSON
Função Bibliotecas
Sintaxe
string json_encode ( $value [, $options = 0 ] )
Parâmetros
valor - o valor que está sendo codificado. Esta função só funciona com dados
codificados em UTF-8.
Exemplo
O exemplo a seguir mostra como converter uma matriz em JSON com PHP -
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
{"a":1,"b":2,"c":3,"d":4,"e":5}
O exemplo a seguir mostra como os objetos PHP podem ser convertidos em JSON -
<?php
class Emp {
public $name = "";
public $hobbies = "";
public $birthdate = "";
}
$e = new Emp();
$e->name = "sachin";
$e->hobbies = "sports";
$e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
$e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));
echo json_encode($e);
?>
Sintaxe
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
Paramaters
Exemplo
O exemplo a seguir mostra como o PHP pode ser usado para decodificar objetos JSON -
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
Meio Ambiente
Antes de iniciar a codificação e decodificação do JSON usando o Perl, é necessário
instalar o módulo JSON, que pode ser obtido no CPAN. Depois de baixar o JSON-
2.53.tar.gz ou qualquer outra versão mais recente, siga as etapas mencionadas abaixo -
Funções JSON
Função Bibliotecas
convert_blessed Use essa função com valor true para que o Perl possa usar o método
TO_JSON na classe do objeto para converter um objeto em JSON.
Sintaxe
$json_text = encode_json ($perl_scalar );
or
$json_text = JSON->new->utf8->encode($perl_scalar);
Exemplo
O exemplo a seguir mostra matrizes em JSON com Perl -
#!/usr/bin/perl
use JSON;
my %rec_hash = ('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
my $json = encode_json \%rec_hash;
print "$json\n";
{"e":5,"c":3,"a":1,"b":2,"d":4}
O exemplo a seguir mostra como os objetos Perl podem ser convertidos em JSON -
#!/usr/bin/perl
package Emp;
sub new{
my $class = shift;
my $self = {
name => shift,
hobbies => shift,
birthdate => shift,
};
package main;
use JSON;
my $JSON = JSON->new->utf8;
$JSON->convert_blessed(1);
Sintaxe
$perl_scalar = decode_json $json_text
or
$perl_scalar = JSON->new->utf8->decode($json_text)
Exemplo
O exemplo a seguir mostra como o Perl pode ser usado para decodificar objetos JSON.
Aqui você precisará instalar o módulo Data :: Dumper se você já não o tiver em sua
máquina.
#!/usr/bin/perl
use JSON;
use Data::Dumper;
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
$text = decode_json($json);
print Dumper($text);
$VAR1 = {
'e' => 5,
'c' => 3,
'a' => 1,
'b' => 2,
'd' => 4
};
Meio Ambiente
Antes de começar com a codificação e decodificação do JSON usando o Python, é
necessário instalar qualquer um dos módulos JSON disponíveis. Para este tutorial nós
baixamos e instalamos o Demjson da seguinte forma -
Sintaxe
demjson.encode(self, obj, nest_level=0)
Exemplo
O exemplo a seguir mostra arrays em JSON com Python.
#!/usr/bin/python
import demjson
json = demjson.encode(data)
print json
[{"a":1,"b":2,"c":3,"d":4,"e":5}]
Sintaxe
demjson.decode(self, txt)
Exemplo
O exemplo a seguir mostra como o Python pode ser usado para decodificar objetos
JSON.
#!/usr/bin/python
import demjson
json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = demjson.decode(json)
print text
Na execução, produzirá o seguinte resultado -
Meio Ambiente
Antes de começar a codificar e decodificar o JSON usando Ruby, é necessário instalar
qualquer um dos módulos JSON disponíveis para o Ruby. Você pode precisar instalar o
Ruby gem, mas se você estiver executando a versão mais recente do Ruby, então você
deve ter o gem já instalado em sua máquina, caso contrário, vamos seguir o passo
seguinte, supondo que você já tenha o gem instalado -
{
"President": "Alan Isaac",
"CEO": "David Richardson",
"India": [
"Sachin Tendulkar",
"Virender Sehwag",
"Gautam Gambhir"
],
"Srilanka": [
"Lasith Malinga",
"Angelo Mathews",
"Kumar Sangakkara"
],
"England": [
"Alastair Cook",
"Jonathan Trott",
"Kevin Pietersen"
]
Dada a seguir é um programa Ruby que será usado para analisar o documento JSON
mencionado acima -
#!/usr/bin/ruby
require 'rubygems'
require 'json'
require 'pp'
json = File.read('input.json')
obj = JSON.parse(json)
pp obj
{
"President"=>"Alan Isaac",
"CEO"=>"David Richardson",
"India"=>
["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"],
"Srilanka"=>
["Lasith Malinga ", "Angelo Mathews", "Kumar Sangakkara"],
"England"=>
["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"]
}
Meio Ambiente
Antes de começar a codificar e decodificar JSON usando Java, você precisa instalar
qualquer um dos módulos JSON disponíveis. Para este tutorial, baixamos e
instalamos JSON.simple e adicionamos a localização do arquivo json-simple-
1.1.1.jar à variável de ambiente CLASSPATH.
JSON Java
corda java.lang.String
número java.lang.Number
verdadeiro | falso ava.lang.Boolean
nulo nulo
array java.util.List
objeto java.util.Map
import org.json.simple.JSONObject;
class JsonEncodeDemo {
obj.put("name", "foo");
obj.put("num", new Integer(100));
obj.put("balance", new Double(1000.21));
obj.put("is_vip", new Boolean(true));
System.out.print(obj);
}
}
A seguir, outro exemplo que mostra um fluxo de objeto JSON usando Java JSONObject -
import org.json.simple.JSONObject;
class JsonEncodeDemo {
obj.put("name","foo");
obj.put("num",new Integer(100));
obj.put("balance",new Double(1000.21));
obj.put("is_vip",new Boolean(true));
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.ParseException;
import org.json.simple.parser.JSONParser;
class JsonDecodeDemo {
try{
Object obj = parser.parse(s);
JSONArray array = (JSONArray)obj;
s = "{}";
obj = parser.parse(s);
System.out.println(obj);
s = "[5,]";
obj = parser.parse(s);
System.out.println(obj);
s = "[5,,2]";
obj = parser.parse(s);
System.out.println(obj);
}catch(ParseException pe){
Field "1"
{"2":{"3":{"4":[5,{"6":7}]}}}
{}
[5]
[5,2]
Muitos desenvolvedores usam o JSON para passar atualizações do AJAX entre o cliente
e o servidor. Os sites que atualizam as pontuações esportivas ao vivo podem ser
considerados como um exemplo de AJAX. Se essas pontuações tiverem que ser
atualizadas no site, elas devem ser armazenadas no servidor para que a página possa
recuperar a pontuação quando for necessária. É aqui que podemos usar dados
formatados em JSON.
Quaisquer dados atualizados usando o AJAX podem ser armazenados usando o formato
JSON no servidor da web. O AJAX é usado para que o javascript possa recuperar esses
arquivos JSON quando necessário, analisá-los e executar uma das seguintes operações
-
Ele atribui diretamente os dados aos elementos DOM na página da Web, para
que eles sejam exibidos no site.
Exemplo
O código a seguir mostra JSON com AJAX. Salve como arquivo ajax.htm . Aqui, a
função loadJSON () de carregamento é usada de forma assíncrona para fazer upload de
dados JSON.
<html>
<head>
<meta content = "text/html; charset = ISO-8859-1" http-equiv = "content-type">
<script type="application/javascript">
function loadJSON(){
var data_file = "http://www.tutorialspoint.com/json/data.json";
var http_request = new XMLHttpRequest();
try{
// Opera 8.0+, Firefox, Chrome, Safari
http_request = new XMLHttpRequest();
}catch (e){
// Internet Explorer Browsers
try{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e) {
try{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
http_request.onreadystatechange = function(){
if (http_request.readyState == 4 ){
// Javascript function JSON.parse to parse JSON data
var jsonObj = JSON.parse(http_request.responseText);
</script>
<title>tutorialspoint.com JSON</title>
</head>
<body>
<h1>Cricketer Details</h1>
</body>
</html>
Segue abaixo o arquivo de entrada data.json , com dados no formato JSON, que serão
carregados de forma assíncrona quando clicarmos no botão Atualizar Detalhes . Este
arquivo está sendo mantido em http://www.tutorialspoint.com/json/
{"name": "brett", "country": "Australia"}
O código HTML acima irá gerar a seguinte tela, onde você pode verificar o AJAX em
ação -
Sachin Índia
Detalhes da atualização :
Quando você clica no botão Update Detail , você deve obter um resultado como
segue. Você pode experimentar o JSON com o AJAX , desde que o seu navegador
suporte Javascript.
Brett Austrália