Você está na página 1de 26

JSON - Guia rápido

Anúncios

 Página anterior Próxima página 

JSON - Visão geral


JSON ou JavaScript Object Notation é um padrão aberto baseado em texto leve
projetado para intercâmbio de dados legível por humanos. As convenções usadas pelo
JSON são conhecidas pelos programadores, que incluem C, C ++, Java, Python, Perl
etc.

JSON significa JavaScript Object Notation.

O formato foi especificado por Douglas Crockford.

Ele foi projetado para intercâmbio de dados legível por humanos.

Ele foi estendido a partir da linguagem de script JavaScript.

A extensão do nome do arquivo é .json.

O tipo JSON Internet Media é application / json.

O identificador de tipo uniforme é public.json.

Usos do JSON
Ele é usado ao escrever aplicativos baseados em JavaScript que incluem
extensões de navegador e sites.

O formato JSON é usado para serializar e transmitir dados estruturados pela


conexão de rede.

É usado principalmente para transmitir dados entre um servidor e aplicativos da


web.

Serviços da Web e APIs usam o formato JSON para fornecer dados públicos.

Pode ser usado com linguagens de programação modernas.

Características do JSON
JSON é fácil de ler e escrever.

É um formato de intercâmbio baseado em texto leve.


JSON é independente de idioma.

Exemplo simples em JSON


O exemplo a seguir mostra como usar o JSON para armazenar informações relacionadas
a livros com base em seu tópico e edição.

{
"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>

<script language = "javascript" >

var object1 = { "language" : "Java", "author" : "herbert schildt" };


document.write("<h1>JSON with JavaScript example</h1>");
document.write("<br>");
document.write("<h3>Language = " + object1.language+"</h3>");
document.write("<h3>Author = " + object1.author+"</h3>");

var object2 = { "language" : "C++", "author" : "E-Balagurusamy" };


document.write("<br>");
document.write("<h3>Language = " + object2.language+"</h3>");
document.write("<h3>Author = " + object2.author+"</h3>");

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
-

Os dados são representados em pares nome / valor.

As chaves mantêm os objetos e cada nome é seguido por ':' (dois pontos), os
pares nome / valor são separados por, (vírgula).

Os colchetes retêm os arrays e os valores são separados por (vírgula).

Abaixo está um exemplo simples -

{
"book": [

{
"id": "01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
},

{
"id": "07",
"language": "C++",
"edition": "second",
"author": "E.Balagurusamy"
}
]
}

O JSON suporta as duas estruturas de dados a seguir -

Coleção de pares nome / valor - Esta estrutura de dados é suportada por


diferentes linguagens de programação.

Lista ordenada de valores - Inclui matriz, lista, vetor ou sequência, etc.

JSON - DataTypes
O formato JSON suporta os seguintes tipos de dados -

S. não. Tipo e Descrição

Número formato de ponto flutuante de precisão dupla em JavaScript

Corda Unicode com aspas duplas com escape de barra invertida

boleano verdadeiro ou falso

Matriz uma sequência ordenada de valores

Valor pode ser uma string, um número, verdadeiro ou falso, null etc

Objeto uma coleção não ordenada de pares key: value

Espaço pode ser usado entre qualquer par de tokens


em
branco

nulo esvaziar

Número
É um formato de ponto flutuante de precisão dupla em JavaScript e depende da
implementação.

Os formatos octal e hexadecimal não são usados.

Nenhum NaN ou Infinity é usado em Number.

A tabela a seguir mostra os tipos de números -

S. não. Tipo e Descrição

Inteiro Dígitos 1-9, 0 e positivos ou negativos

Fração Frações como 0,3, 9

Expoente Expoente como e, e +, e-, E, E +, E-


Sintaxe
var json-object-name = { string : number_value, .......}

Exemplo
Exemplo mostrando Número Tipo de dados, valor não deve ser citado -

var obj = {marks: 97}

Corda
É uma sequência de zero ou mais caracteres Unicode com aspas duplas com
escape de barra invertida.

Caractere é uma cadeia de caracteres simples, ou seja, uma cadeia com


comprimento 1.

A tabela mostra os tipos de string -

S. não. Tipo e Descrição

" cotação dupla

\ solidus reverso

/ solidus

b backspace

f feed de formulário

n nova linha

r retorno de carro

t guia horizontal

você quatro dígitos hexadecimais

Sintaxe
var json-object-name = { string : "string value", .......}

Exemplo
Exemplo mostrando o tipo de dados da string -

var obj = {name: 'Amit'}

boleano
Inclui valores verdadeiros ou falsos.
Sintaxe
var json-object-name = { string : true/false, .......}

Exemplo

var obj = {name: 'Amit', marks: 97, distinction: true}

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.] ..

Os valores são separados por (vírgula).

A indexação de matrizes pode ser iniciada em 0 ou 1.

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

var i = " sachin";


var j = " saurav"

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 -

número (inteiro ou ponto flutuante)

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 -

Criação de um Objeto Vazio -

var JSONObj = {};

Criação de um novo objeto -

var JSONObj = new Object();

Criação de um objeto com atributo bookname com valor em string, atributo


price com valor numérico. Atributo é acessado usando '.' Operador -

var JSONObj = { "bookname ":"VB BLACK BOOK", "price":500 };

Este é um exemplo que mostra a criação de um objeto em javascript usando JSON,


salve o código abaixo como json_object.htm

<html>
<head>
<title>Creating Object JSON with JavaScript</title>

<script language = "javascript" >

var JSONObj = { "name" : "tutorialspoint.com", "year" : 2005 };

document.write("<h1>JSON with JavaScript example</h1>");


document.write("<br>");
document.write("<h3>Website Name = "+JSONObj.name+"</h3>");
document.write("<h3>Year = "+JSONObj.year+"</h3>");

</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 -

Criando Objetos de Matriz


O exemplo a seguir mostra a criação de um objeto de matriz em javascript usando
JSON, salve o código abaixo como json_array_object.htm

<html>
<head>
<title>Creation of array object in javascript using JSON</title>

<script language = "javascript" >

document.writeln("<h2>JSON array object</h2>");

var books = { "Pascal" : [


{ "Name" : "Pascal Made Simple", "price" : 700 },
{ "Name" : "Guide to Pascal", "price" : 400 }],

"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 -

Descreve seu formato de dados existente.

Documentação clara, legível por humanos e por máquinas.

Validação estrutural completa, útil para testes automatizados.

Validação estrutural completa, validando os dados enviados pelo cliente.

Bibliotecas de validação de esquema JSON


Existem vários validadores atualmente disponíveis para diferentes linguagens de
programação. Atualmente, o validador de esquema JSON mais completo e compatível
disponível é o JSV.

línguas Bibliotecas

C WJElement (LGPLv3)

Java json-schema-validator (LGPLv3)

.LÍQUIDO Json.NET (MIT)

ActionScript 3 Frigga (MIT)


Haskell aeson-schema (MIT)

Python Jsonschema

Rubi autoparse (ASL 2.0); rubi-jsonschema (MIT)

PHP php-json-schema (MIT). json-schema (Berkeley)

JavaScript Orderly (BSD); JSV; esquema json; Matic (MIT); Dojo; Perseverar
(modificado BSD ou AFL 2.0); schema.js.

Exemplo de esquema JSON


Dada a seguir é um esquema JSON básico, que abrange uma descrição clássica do
catálogo de produtos -

{
"$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
}
},

"required": ["id", "name", "price"]


}

Vamos verificar várias palavras-chave importantes que podem ser usadas neste
esquema -

Palavras-chave Tipo e Descrição

$ schema A palavra-chave $ schema informa que esse esquema é gravado de


acordo com a especificação do rascunho v4.

título Você usará isso para dar um título ao seu esquema.

descrição Uma pequena descrição do esquema.

tipo A palavra-chave type define a primeira restrição em nossos dados


JSON: tem que ser um objeto JSON.

propriedades Define várias chaves e seus tipos de valores, valores mínimo e máximo
a serem usados no arquivo JSON.

requeridos Isso mantém uma lista de propriedades necessárias.

mínimo Esta é a restrição a ser colocada no valor e representa o valor mínimo


aceitável.

exclusiveMinimum Se "exclusiveMinimum" estiver presente e tiver um valor booleano


true, a instância será válida se for estritamente maior que o valor de
"mínimo".

máximo Essa é a restrição a ser colocada no valor e representa o valor máximo


aceitável.

exclusiveMaximum Se "exclusiveMaximum" estiver presente e tiver um valor booleano


true, a instância será válida se for estritamente menor que o valor de
"maximum".

múltiplo de Uma instância numérica é válida contra "multipleOf" se o resultado da


divisão da instância pelo valor desta palavra-chave for um inteiro.

comprimento O comprimento de uma instância de cadeia é definido como o número


máximo máximo de caracteres.

minLength O comprimento de uma instância de cadeia é definido como o número


mínimo de seus caracteres.

padronizar Uma instância de cadeia é considerada válida se a expressão regular


corresponder à instância com êxito.

Você pode verificar um http://json-schema.org para obter a lista completa de


palavras-chave que podem ser usadas na definição de um esquema JSON. O esquema
acima pode ser usado para testar a validade do seguinte código JSON -

[
{
"id": 2,
"name": "An ice sculpture",
"price": 12.50,
},

{
"id": 3,
"name": "A blue mouse",
"price": 25.50,
}
]

JSON - Comparação com XML


JSON e XML são formatos legíveis por humanos e são independentes de linguagem.
Ambos têm suporte para criação, leitura e decodificação em situações do mundo real.
Podemos comparar JSON com XML, com base nos seguintes fatores -

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>

JSON com PHP


Este capítulo aborda como codificar e decodificar objetos JSON usando a linguagem de
programação PHP. Vamos começar com a preparação do ambiente para iniciar nossa
programação com o PHP para JSON.

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

json_encode Retorna a representação JSON de um valor.

json_decode Decodifica uma string JSON.

json_last_error Retorna o último erro ocorrido.

Codificando JSON em PHP (json_encode)


A função PHP json_encode () é usada para codificar JSON no PHP. Esta função retorna a
representação JSON de um valor em sucesso ou FALSE em falha.

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.

opções - Esse valor opcional é uma máscara de bits que consiste em


JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS,
JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES,
JSON_FORCE_OBJECT.

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);
?>

Durante a execução, isso produzirá o seguinte resultado -

{"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);
?>

Durante a execução, isso produzirá o seguinte resultado -

{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}

Decodificando o JSON no PHP (json_decode)


A função PHP json_decode () é usada para decodificar o JSON no PHP. Esta função
retorna o valor decodificado do json para o tipo apropriado do PHP.

Sintaxe
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

Paramaters

json_string - É uma string codificada que deve ser um dado codificado em


UTF-8.

assoc - É um parâmetro de tipo booleano, quando definido como TRUE, os


objetos retornados serão convertidos em matrizes associativas.

profundidade - É um parâmetro de tipo inteiro que especifica profundidade de


recursão

opções - É uma máscara de bits do tipo inteiro de JSON decode,


JSON_BIGINT_AS_STRING é suportado.

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));
?>

Durante a execução, ele produzirá o seguinte resultado -

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)
}

JSON com Perl


Este capítulo aborda como codificar e decodificar objetos JSON usando a linguagem de
programação Perl. Vamos começar com a preparação do ambiente para iniciar nossa
programação com Perl para JSON.

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 -

$tar xvfz JSON-2.53.tar.gz


$cd JSON-2.53
$perl Makefile.PL
$make
$make install

Funções JSON
Função Bibliotecas

encode_json Converte a estrutura de dados Perl em uma string binária codificada em


UTF-8.

decode_json Decodifica uma string JSON.

to_json Converte a estrutura de dados Perl em uma string json.

from_json Espera uma cadeia json e tenta analisá-la, retornando a referência


resultante.

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.

Codificando JSON em Perl (encode_json)


A função Perl encode_json () converte a estrutura de dados Perl em uma string binária
codificada em UTF-8.

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";

Durante a execução, isso produzirá o seguinte resultado -

{"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,
};

bless $self, $class;


return $self;
}

sub TO_JSON { return { %{ shift() } }; }

package main;
use JSON;

my $JSON = JSON->new->utf8;
$JSON->convert_blessed(1);

$e = new Emp( "sachin", "sports", "8/5/1974 12:20:03 pm");


$json = $JSON->encode($e);
print "$json\n";

Na execução, produzirá o seguinte resultado -

{"birthdate":"8/5/1974 12:20:03 pm","name":"sachin","hobbies":"sports"}

Decodificando JSON em Perl (decode_json)


A função Perl decode_json () é usada para decodificar JSON em Perl. Essa função
retorna o valor decodificado do json para um tipo Perl apropriado.

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);

Na execução, produzirá o seguinte resultado -

$VAR1 = {
'e' => 5,
'c' => 3,
'a' => 1,
'b' => 2,
'd' => 4
};

JSON com Python


Este capítulo aborda como codificar e decodificar objetos JSON usando a linguagem de
programação Python. Vamos começar com a preparação do ambiente para iniciar nossa
programação com o Python for JSON.

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 -

$tar xvfz demjson-1.6.tar.gz


$cd demjson-1.6
$python setup.py install
Funções JSON
Função Bibliotecas

codificar Codifica o objeto Python em uma representação de string JSON.

decodificar Decodifica uma string codificada em JSON em um objeto Python.

Codificando JSON em Python (codificar)


A função de codificação Python () codifica o objeto Python em uma representação de
string JSON.

Sintaxe
demjson.encode(self, obj, nest_level=0)

Exemplo
O exemplo a seguir mostra arrays em JSON com Python.

#!/usr/bin/python
import demjson

data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

json = demjson.encode(data)
print json

Durante a execução, isso produzirá o seguinte resultado -

[{"a":1,"b":2,"c":3,"d":4,"e":5}]

Decodificando JSON em Python (decodificar)


O Python pode usar a função demjson.decode () para decodificar o JSON. Essa função
retorna o valor decodificado do json para um tipo apropriado do Python.

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 -

{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}

JSON com Ruby


Este capítulo aborda como codificar e decodificar objetos JSON usando a linguagem de
programação Ruby. Vamos começar com a preparação do ambiente para iniciar nossa
programação com o Ruby for JSON.

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 -

$gem install json

Analisando JSON usando Ruby


O exemplo a seguir mostra que as primeiras 2 chaves contêm valores de string e que as
últimas 3 contêm arrays de strings. Vamos manter o seguinte conteúdo em um arquivo
chamado input.json .

{
"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

Na execução, produzirá o seguinte resultado -

{
"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"]
}

JSON com Java


Este capítulo aborda como codificar e decodificar objetos JSON usando a linguagem de
programação Java. Vamos começar com a preparação do ambiente para iniciar nossa
programação com o Java para JSON.

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.

Mapeamento entre entidades JSON e Java


O JSON.simple mapeia entidades do lado esquerdo para o lado direito durante a
decodificação ou análise e mapeia entidades da direita para a esquerda durante a
codificação.

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

Na decodificação, a classe concreta padrão de java.util.List é org.json.simple.JSONArray


e a classe concreta padrão de java.util.Map é org.json.simple.JSONObject .

Codificando JSON em Java


A seguir, um exemplo simples para codificar um objeto JSON usando o Java
JSONObject, que é uma subclasse de java.util.HashMap. Nenhum pedido é fornecido.
Se você precisar da ordenação estrita de elementos, use o método
JSONValue.toJSONString (map) com implementação de mapa ordenada, como
java.util.LinkedHashMap.

import org.json.simple.JSONObject;

class JsonEncodeDemo {

public static void main(String[] args){


JSONObject obj = new JSONObject();

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);
}
}

Na compilação e execução do programa acima, o seguinte resultado será gerado -

{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}

A seguir, outro exemplo que mostra um fluxo de objeto JSON usando Java JSONObject -

import org.json.simple.JSONObject;

class JsonEncodeDemo {

public static void main(String[] args){

JSONObject obj = new JSONObject();

obj.put("name","foo");
obj.put("num",new Integer(100));
obj.put("balance",new Double(1000.21));
obj.put("is_vip",new Boolean(true));

StringWriter out = new StringWriter();


obj.writeJSONString(out);
String jsonText = out.toString();
System.out.print(jsonText);
}
}

Ao compilar e executar o programa acima, o seguinte resultado é gerado -

{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}

Decodificando JSON em Java


O exemplo a seguir faz uso de JSONObject e JSONArray, em que JSONObject é um
java.util.Map e JSONArray é um java.util.List, para que você possa acessá-los com
operações padrão de Map ou List.

import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.ParseException;
import org.json.simple.parser.JSONParser;

class JsonDecodeDemo {

public static void main(String[] args){

JSONParser parser = new JSONParser();


String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";

try{
Object obj = parser.parse(s);
JSONArray array = (JSONArray)obj;

System.out.println("The 2nd element of array");


System.out.println(array.get(1));
System.out.println();

JSONObject obj2 = (JSONObject)array.get(1);


System.out.println("Field \"1\"");
System.out.println(obj2.get("1"));

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){

System.out.println("position: " + pe.getPosition());


System.out.println(pe);
}
}
}

Na compilação e execução do programa acima, o seguinte resultado será gerado -


The 2nd element of array
{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}

Field "1"
{"2":{"3":{"4":[5,{"6":7}]}}}
{}
[5]
[5,2]

JSON com Ajax


AJAX é JavaScript assíncrono e XML, que é usado no lado do cliente como um grupo de
técnicas de desenvolvimento web inter-relacionadas, a fim de criar aplicações web
assíncronas. De acordo com o modelo AJAX, os aplicativos da Web podem enviar e
recuperar dados de um servidor de forma assíncrona, sem interferir na exibição e no
comportamento da página existente.

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
-

Armazene os valores analisados nas variáveis para processamento adicional


antes de exibi-los na página da Web.

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);

// jsonObj variable now contains the data structure and can


// be accessed as jsonObj.name and jsonObj.country.
document.getElementById("Name").innerHTML = jsonObj.name;
document.getElementById("Country").innerHTML = jsonObj.country;
}
}

http_request.open("GET", data_file, true);


http_request.send();
}

</script>

<title>tutorialspoint.com JSON</title>
</head>

<body>
<h1>Cricketer Details</h1>

<table class = "src">


<tr><th>Name</th><th>Country</th></tr>
<tr><td><div id = "Name">Sachin</div></td>
<td><div id = "Country">India</div></td></tr>
</table>

<div class = "central">


<button type = "button" onclick = "loadJSON()">Update Details </button>
</div>

</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 - 

Detalhes do jogador de críquete


Nome País

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.

Detalhes do jogador de críquete


Nome País

Brett Austrália

 Página anterior Próxima página 

FAQ's Política de Cookies Contato


© Copyright 2018. Todos os direitos reservados.

Enter email for newsletter vai

Você também pode gostar