Tutorial JSON

31
Como trabalhar com JSON em Node.js / JavaScript Recentemente eu comecei a aprender e trabalhar em plataforma Node.js. Então, agora estou novamente escovar minha habilidade JavaScript há muito esquecido. JSON é um formato comum que enfrentamos a cada momento e, em seguida, em JavaScript, se o seu lado do cliente ou do lado do servidor. Como nodejs ser uma plataforma do lado do servidor, ele tem um pouco mais de capacidade do que JavaScript no navegador, como a escrita para o sistema de arquivos etc. Estou tentando agregar a maior parte das operações que normalmente podemos realizar relacionado com JSON objeto. Embora a maior parte deste tutorial será aplicada a ambos os tipos de JavaScript, poucos poderiam ser específico para Node.js. Cadeia Para JSON Objeto: Isto é muito mais fácil e simples como a seguir: 1 2 3 var jsonString = "{" chave ":" valor "}" ; var jsonObj = JSON.parse (jsonString); console.log (jsonObj.key); Como você pode ver, estamos usando o built-in JSON mundial objeto para analisar uma cadeia que tem dados JSON. Além disso, pode ser boa ideia usar ".trim) (" método na corda, se você acha que pode haver alguma chance de etc espaço extra na cadeia de JSON. Caso contrário, ele não vai se analisado e você vai enfrentar um erro inesperado. JSON objeto Para Cadeia: Como tal como no caso anterior, podemos usar o método 'stringify' do mesmo objeto global para converter um dado

description

tutorial json

Transcript of Tutorial JSON

Como trabalhar com JSON em Node.js / JavaScriptRecentemente eu comecei a aprender e trabalhar em plataforma Node.js.Ento, agora estou novamente escovar minha habilidade JavaScript h muito esquecido.JSON um formato comum que enfrentamos a cada momento e, em seguida, em JavaScript, se o seu lado do cliente ou do lado do servidor.Como nodejs ser uma plataforma do lado do servidor, ele tem um pouco mais de capacidade do que JavaScript no navegador, como a escrita para o sistema de arquivos etc.Estou tentando agregar a maior parte das operaes que normalmente podemos realizar relacionado com JSON objeto.Embora a maior parte deste tutorial ser aplicada a ambos os tipos de JavaScript, poucos poderiam ser especfico para Node.js.Cadeia Para JSON Objeto:Isto muito mais fcil e simples como a seguir:123var jsonString = "{" chave ":" valor "}" ;var jsonObj = JSON.parse (jsonString);console.log (jsonObj.key);

Como voc pode ver, estamos usando o built-inJSON mundial objetopara analisar uma cadeia que tem dados JSON.Alm disso, pode ser boa ideia usar ".trim) (" mtodo na corda, se voc acha que pode haver alguma chance de etc espao extra na cadeia de JSON.Caso contrrio, ele no vai se analisado e voc vai enfrentar um erro inesperado.JSON objeto Para Cadeia:Como tal como no caso anterior, podemos usar o mtodo 'stringify' do mesmo objeto global para converter um dado JSON para dados de cadeia.Isto pode ser feito facilmente como como a seguir:12var jsonObj = { 'chave' : 'value' };console.log (JSON.stringify (jsonObj));

Trate Definido Classe Instncia Para JSON string user:Se voc estiver escrevendo estilo JavaScript OOP e deseja converter uma instncia de objeto para JSON como string (com o seu nome atributos / valor como key / value), voc ainda pode usar o mesmo objeto JSON para abordagem de cadeia como a seguir:123456789funo MyClass () {este .a = "algum valor" ;este .b = {"Chave" : "uma outra estrutura json '};}var instance = novas MyClass ();console.log (JSON.stringify (instncia));

No entanto, voc ter que ter cuidado para que voc est declarando propriedades corretamente, em vez de declar-las como varivel local.Esta discusso pilha de estourotambm pode ajudar a compreender as diferenas facilmente.Leia JSON partir do Sistema de Arquivos Em NodeJS:Se voc estava tentando pesquisando apenas para esta finalidade, pode ter chegado aesta essnciaque mostra exemplo, com o apoio do sistema de arquivos de nodejs (fs mdulo).Mas, eu realmente no vejo qualquer sentido de que, como se pode simplesmente fazer a mesma coisa por:1var jsonObj = require ( "./path/to/myjsonfile.json" );

Aqui, NodeJS ler automaticamente o arquivo, analisar o contedo de um objeto JSON e atribui isso varivel lado esquerdo. to simples quanto isso!Adicionar novo elemento a Existing JSON Objeto:Diga, voc tem um objeto json existente, o que voc deseja modificar para adicionar novo par (s) chave / valor.Voc pode fazer isso usando qualquer uma das duas maneiras, como abaixo:12345var myJson = { 'chave' : 'value' };// Novo elementomyJson.key2 = "valor2" ;// OumyJson [key3] = 'value3' ;

Excluir um elemento de um objeto JSON:Bem, para apagar um elemento de um objeto JSON, isso pode ser feito usando a palavra-chave "apagar".Um exemplo dado abaixo:12var myJson = { 'chave' : 'value' };excluir myJson [ 'chave' ];

Iterao sobre um objeto JSON:s vezes voc vai ser necessrio atravessar cada um dos elementos do objeto JSON.Isso pode ser feito em um loop for facilmente quanto como abaixo:1234var myJson = { 'chave' : 'valor' , 'key2' : 'valor2' };para ( var myKey em myJson) {console.log ( "key:" + myKey + ", valor:" + myJson [myKey]);}

No entanto, o cdigo acima poderia dar-lhe de erro no caso de o valor em si um objeto JSON.Ento, voc vai querer verificarse o valor em si json ou noe segur-lo assim.Verifique Existncia Key:Se em algum momento preciso verificar se um objeto json tem uma chave especfica, podemos verificar que, com abordagem a seguir:1234var myJson = { 'chave' : 'valor' , 'key2' : 'valor2' };se (myJson.hasOwnProperty ( "Key2" )) {// Faz alguma coisa se a chave de existir}

Comparando Dois objetos JSON:Se voc precisa para comparar dois objetos JSON para verificar se eles so iguais ou no, melhor para repetir e comparar cada propriedade.Como referncia, por favor visiteesta discusso pilha de estouro.Algo Mais?Se voc acha que alguma coisa est faltando ou algo no est claro sobre a utilizao de dados JSON em Node.js / JavaScript, por favor, pergunte-me saber por comentar aqui.Codificao feliz

JSON(JavaScript Object Notation - Notao de Objetos JavaScript) uma formatao leve de troca de dados. Para seres humanos, fcil de ler e escrever. Para mquinas, fcil de interpretar e gerar. Est baseado em um subconjunto dalinguagem de programao JavaScript,Standard ECMA-262 3a Edio -Dezembro - 1999. JSON em formato texto e completamente independente de linguagem, pois usa convenes que so familiares s linguagens C e familiares, incluindo C++, C#, Java, JavaScript, Perl, Python e muitas outras. Estas propriedades fazem com que JSON seja um formato ideal de troca de dados.JSON est constitudo em duas estruturas: Uma coleo de pares nome/valor. Em vrias linguagens, isto caracterizado como umobject, record, struct, dicionrio, hash table, keyed list, ou arrays associativas. Uma lista ordenada de valores. Na maioria das linguagens, isto caracterizado como umaarray, vetor, lista ou sequncia.Estas so estruturas de dados universais. Virtualmente todas as linguagens de programao modernas as suportam, de uma forma ou de outra. aceitavel que um formato de troca de dados que seja independente de linguagem de programao se baseie nestas estruturas.Em JSON, os dados so apresentados desta forma:Um objeto um conjunto desordenado de pares nome/valor. Um objeto comea com{(chave de abertura)e termina com}(chave de fechamento). Cada nome seguido por:(dois pontos)e os pares nome/valor so seguidos por,(vrgula).

Uma array uma coleo de valores ordenados. O array comea com[(conchete de abertura)e termina com](conchete de fechamento). Os valores so separados por,(vrgula).

Um valor (value, na imagem acima) pode ser uma cadeia de caracteres (string), ou um nmero, outrueoufalse, ounull, ou um objeto ou uma array. Estas estruturas podem estar aninhadas.

Uma string uma coleo de nenhum ou mais caracteres Unicode, envolvido entre aspas duplas usando barras invertidas como caracter de escape. Um caracter est representando como um simples caracter de string. Uma cadeia de caracteres parecida com uma cadeia de caracteres em C ou Java.

Um nmero similar a um nmero em C ou Java, exceto quando no se usa os nmeros octais ou hexadecimais.

Espaos em branco podem ser inseridos em quanlquer parte dos smbolos. Exceto pequenos detalhes de codificao, a linguagem completamente descrita.

JSON Uma introduo

A troca de dados sempre foi uma prtica (e necessidade) comum no desenvolvimento de sistemas, seja desktop ou web, os anos passaram e vrios padres/modelos surgiram, persistiram, morreram, renasceram, morreram de vez e etc..

Nos sistemas desktop oEDIsempre foi bastante utilizado, o tempo passou, a web chegou e ficou complicado manipular um arquivo de texto separado por ponto-e-vrgula de sabe-se l quantos mbs. Se voc trabalhava com quantidade de caracteres e faltasse um caractere, sua consistncia toda ia por gua abaixo, se trabalhava seguindo algum caractere padro (ponto-e-vrgula, por exemplo) e esse caractere repetia em alguma string, novamente dor de cabea, logo ento surgiu o nosso conhecidoXML, era muito mais simples e organizado trabalhar com uma linguagem de marcao semelhante ao HTML, a sua eficincia tanta que o XML altamente utilizado at hoje (de acordo com a Wikipdia o XML surgiu em 1990).

O tempo continuou a passar, as pessoas, a web e as nossas necessidades mudaram, com os novos conceitos de usabilidade, web semntica, experincia de usurio e etc. o uso de Ajax se tornou quase que uma obrigao, manipulao de dados com javascript se fez e faz muito necessria. E podemos afirmar, trabalhar com XML e javascript no das atividades mais amigveis. A partir dessa necessidade (no s, mas principalmente dela) surge o JSON (Javascript Object Notation).

Sua estrutura nada mais que umLiteral. Abaixo um exemplo:{ //-- Primeiro colocamos o nome da propriedade, // e usamos dois pontos ":" para separarmos do valor da propriedade nome: "Edjan", sobrenome: "Santos", site: "http://www.labirintorium.com.br"}A grande vantagem do JSON ao XML ao se trabalhar com Javascript justamente o fato de um JSON ser um objeto do javascript, sua manipulao simples e natural.

Vamos ilustrar melhor a vantagem, consideremos o seguinte XML:

Vamos visualiz-lo com javascript:function xmlLoader(xmlUrl){var objXML; try { objXML = new ActiveXObject("Microsoft.XMLDOM");} catch(ex) {}try {objXML = document.implementation.createDocument("","",null);} catch(e) {}try { objXML.async = false; objXML.load(xmlUrl); return objXML; } catch(exc) {return(null);}}

var xml = xmlLoader("http://www.labirintorium.com.br/artigos/json/dados.xml");

var msg = "";var usuario = xml.getElementsByTagName("usuario")[0];for(var i=0; i Agora vamos visualizar com javascript uma estrutura JSON:var objJSON = {nome: "Edjan",sobrenome: "Santos",site: "http://www.labirintorium.com.br"};

alert(" nome:"+objJSON.nome+"\n sobrenome: "+objJSON.sobrenome+"\n site: "+objJSON.site);

Viu como simples? claro que essa estrutura est bem bsica, estamos trabalhando apenas com um registro tanto no XML quanto no JSON mas acredito que seja o suficiente para ilustrar a grande vantagem de se utilizar JSON principalmente com javascript.

No site JSON.org possvel encontrar vrias classes para muitas linguagens, classes prontas e recomendadas para linguagens como C#, PHP, JSP, C, Flex, Python, etc., alm de outras referncias ao uso do JSON.

O objetivo desse artigo foi explicar de forma breve o que o JSON, pra que ele serve e principalmente por que us-lo com Javascript. Como afirmei acima e voc pode observar no site do JSON, possvel utiliz-lo com muitas linguagens, fica a seu cargo utiliz-lo ou no. Como tudo na vida, o JSON tambm tem seus pontos negativos, que talvez eu aborde futuramente em outro artigo, mas por enquanto voc pode ler o excelente artigo do Henry Story que j esclarece muita coisa.

Agora fica a misso de utilizar o JSON na prtica, experimente em seus projetos e veja os benefcios de estruturas organizadas, padronizadas e rpidas!

Read more:http://www.linhadecodigo.com.br/artigo/2613/json-uma-introducao.aspx#ixzz3WAZeC3nC

Breve Introduo ao JSON

No postComo Montar um Grid utilizando Ext JS, citei que era possvel carregar os dados de um grid atravs de JSON.O post de hoje tem como objetivo de fazer uma breve introduo sobre JSON.JSON (JavaScript Object Notation Notao de Objetos JavaScript) uma formatao leve de troca de dados, tambm conhecido como um sucessor do XML. JSON em formato texto muito simples e ao mesmo tempo elegante, alm de ser em formato para troca de informaes entre o browser e o servidor.O JSON tambm mais rpido e mais leve que o XML. Enquanto que no XML tratamos todos os dados como string, os objetos JSON so tipados (string, number, array, boolean).Um objeto JSON pode ter a forma de duas estruturas: Uma coleo de pares nome/valor Uma lista de valoresExemplos

O objeto meuPrimeiroJSON possui 3 propriedades, ou 3 pares nome/valor. O nome de cada par : nome, sobrenome e idade. O valor pode ser qualquer objeto Javascript. Neste exemplo, o valor de cara par, respectivamente: Loiane, Groner, 23. Note que nome e sobrenome so strings e a idade um nmero.Como j citado, o formato dos dados chamado de JSON. O que o torna poderoso o fato do valor porder ser qualquer tipo de dados, desde uma string at arrays e outros objetos, podendo formar tipos complexos de dados, como os da estrutura abaixo:

Para converter um texto JSON em um objeto JSON, utilizamos a funo eval(), que invoca o compilador javascript, que ir converter o texto e criar a estrutura de um objeto:

Voc pode trabalhar com JSON e diversas linguagens, inclusive java!Os cdigos js do post voc pode fazer o downloadaqui

ConclusoEsta foi uma rpida introduo de como representar um objeto JSON.Para maiores detalhes, visite:http://www.json.org/

JSON - Introduo e conceitos bsicosNeste artigo eu vou apresentar oJavaScript Object Notation (ou JSON), um formato de intercmbio de dados abertos e baseado em texto que fornece um formato de troca de dados padronizado mais adequado para aplicaes baseadas em Ajax.Obs: Assim como XML, JSON tambm pode ser visto uma alternativa ao modelo de dados relacional mais apropriadamente a dados semiestruturados.Mas o que JSON tem a ver com a plataforma .NET, com VB .NET, C# e ASP .NET ?Tudo !!Quando voc cria uma aplicao que ir se comunicar com outra aplicao, quer seja ela local ou remota, voc esta trocando informaes e neste caso um formato de dados e um protocolo de troca deve ser selecionado para que a comunicao seja feita com sucesso. Por sucesso entende-se que quem recebe a informao consegue trat-la e entender o seu significado.Existem uma variedade de opes de protocolos abertos padronizados, tais comoSOAP, XML, etc.,que podem ser adotados e isso vai depender da finalidade e dos requisitos da sua aplicao.Dessa forma, JSON um protocolo leve para intercmbio de dados e est baseado em um subconjunto da linguagem de programaoJavaScript, sendo independente desta e de qualquer linguagem.JSON lembra XML : JSON texto simples JSON "auto-descritivo" (legvel) JSON hierrquico (valores dentro de valores) JSON pode ser analisado pelo JavaScript JSON os dados podem ser transportadas usando AJAXmas diferente da XML: No utiliza a tag de fechamento mais curto e simples mais rpido de ler e escrever Pode ser analisado usando a funo eval() do JavaScript Utiliza matrizes No possui palavras reservadas Possui parser nas principais linguagens e navegadoresAssim, JSON menor do que XML, mais rpido e mais fcil de analisar.O motivo principal para usar JSON que em aplicaes web com AJAX, JSON muito mais rpido e fcil de usar do que XML.A sintaxe JSON um subconjunto da linguagem JavaScript(sendo independente desta repito).As principais regras de sintaxe JSON so: Dados JSON esto definidos aos pares no formato:nome : valor Os dados so separados por vrgulas(,) As chaves {} contm objetos Os colchetes [] expressammatrizes/vetoresBasicamente o JSON se baseia na notaoNOME : VALOR, ondeNOMEpode ser o nome que voc deseja usar para identificar um objeto eVALORo valor deste objeto.A sintaxe JSON usa o parNOME : VALORonde nome definido entre aspas, seguido por dois pontos, seguido por um valor:Ex: "nome" : "Macoratti" , "font-size" : "14px;"Em JSON os valores usados podem ser: Um nmero (inteiro ou ponto flutuante) Uma string (entre aspas) Um booleano (verdadeiro ou falso) Uma matriz (entre colchetes[]) Um objeto (entre chaves {}) nuloOs objetos JSON so definidos entre chaves{}e podem conter mltiplos pares nome:valor:Ex:var pessoa = { "nome" : "Jose Carlos" , "sobrenome" : "Macoratti" };var produto = {"ProdutoID":1, "Descricao":"Notebook 14", "ProdutoNumero":"PRD-5381"};Os arrays em JSON so definidos entre colchetes[]e podem conter mltiplos objetos:Ex1: var cores = [ "Azul" , "Branco", "Vermelho", "Amarelo" ];Podemos acessar os dados usando a seguinte sintaxe: var cores = [ "Azul" , "Branco", "Vermelho", "Amarelo" ]; for (i=0; i retona Jose CarlosPara alterar um valor usamos a seguinte sintaxe:alunos[0].nome = "Teste";Vejamos a seguir a definio de uma estrutura de dados mais complexa usando JSON:var agenda = { "nome": "Jose Carlos", "sobrenome": "Macoratti", "idade": 45, "endereco": { "endereco": "Rua Projetada, 200", "cidade": "Santos", "estado": "SP", "cep": 11054058 }, "telefone": [ { "tipo": "fixo", "numero": "212 555-1234" }, { "tipo": "celular", "numero": "646 555-4567" } ]}

O exemplo mostra a representao JSON de um objeto que descreve uma pessoa. O objeto tem campos string para o nome e sobrenome, um campo nmero para a idade, contm um objeto que representa o endereo da pessoa, e contm uma lista (uma matriz) de objetos para os nmeros de telefone.No exemplo acima onde temos a varivel agenda contendo os dados JSON, podemos usar a funo eval() para criar o objeto contato JavaScript da seguinte forma: var contato =eval("(" + agenda + ")");Obs: a varivel agenda precisa estar envolvida em parnteses para evitar ambiguidade com a sintaxe JavaScript.A funo JavaScripteval()pode ser usada para converter um texto JSON em um texto JavaScript pois a funo eval() usa o compilador JavaScript que ir analisar o texto JSON e um produzir um objeto JavaScript. Para evitar um erro de sintaxe o texto precisa ser envolvido por parnteses.Abaixo um exemplo de utilizao da funo eval() onde criamos um objeto JavaScript a partir de um array JSON e exibimos o segundo objeto do array:

Cria um Objeto a partir de uma string JSON

Nome:
Sobrenome:

var txt = '{"funcionarios":[' +'{"nome":"Jose Carlos","sobrenome":"Macoratti" },' +'{"nome":"Janice","sobrenome":"Rachel" },' +'{"nome":"Jefferson","sobrenome":"Andre" }]}';

var obj = eval ("(" + txt + ")");

document.getElementById("nome").innerHTML=obj.funcionarios[1].nome document.getElementById("sobrenome").innerHTML=obj.funcionarios[1].sobrenome

Como a funo eval() pode compilar e executar qualquer JavaScript isso representa um potencial problema de segurana.Por isso mais seguro usar um parser JSON para converter um texto JSON para um objeto JavaScript.Um parser ou analisador JSON ir reconhecer apenas o texto JSON e no vai compilar os scripts.Em navegadores que oferecem suporte nativo a JSON, os parsers JSON tambm so mais rpidos. O apoio ao JSON nativo est includo nos navegadores mais novos e no mais novo padro ECMAScript (JavaScript).Atualmente navegadores como o Firefox e Internet Explorer incluem caractersticas especiais para analisar (parsers) JSON, sendo esse suporte ao navegador nativo mais eficiente e seguro do que o usar o recurso eval() do JavaScript.Na continuao deste artigo vou mostrar como usar JSON com ASP .NET :ASP .NET - Usando JSON para trocar informaes entre um servio WCF e um Web site AjaxIntroduo ao JSON

Comunicao entre aplicaes, plataformas e linguagens hoje em dia algo muito comum na rea de TI.Em uma empresa temos o software da secretaria que feito em Delphi (legado). O site da empresa feito em PHP e os novos sistemas esto sendo feitos em Java e Python, alm de um outro sistema que deve ser feito em Lua por conta da plataforma. E no final de tudo todos eles precisam falar a mesma lngua, mas como?Trafegar dados a maneira que podemos fazer para que sistemas se comuniquem e transpaream falar a mesma lngua sem ter que cadastrar tudo de novo (ningum faz isso).Uma tecnologia que usavamos pra fazer isso (e ainda usamos) aExtensible Markup Language ou mais conhecida por todos como XML. Com ela podemos trafegar informaes de um lado pro outro utilizando padres, padres esses que determinam como escrever e ler dados.Aqui est um exemplo de um arquivo XML.?Livro12Ventilador23Bolsa123

Basicamente o XML trabalha com tags onde uma tag pode (ou no) ter um contedo ou simplesmente ter outras tags dentro dela.O XML originou muitas linguagens pelo seu padro tais como XHTML (Web) e NCL (TV Digital).Conhecida como linguagem de marcao ou descrio de contedo o XML vem sendo usado desde arquivos de configurao de frameworks (hibernate, struts e etc) at a comunicao de sistemas utilizando esse formato.Mas, como nem tudo sobrevive por muito tempo na tecnologia. Eis que surge uma tecnologia similar ao XML mas, que tem algumas vantagens: seu nome JSON.JSON um formato mais leve para trfego de dados, sua origem vem do JavaScript, tanto que JSON significa:JavaScriptObjectNotation. O seu uso surge da necessidade de trfegar o mnimo de informao em requisies AJAX.O mesmo arquivo escrito acima em XML seria descrito em um arquivo JSON (.json) da seguinte forma:?{ "produtos" : [{"nome":"Sapato","preco":278},{"nome":"Bolsa","preco":120},{"nome":"Ventilador","preco":75}]}

Nota-se que o arquivo JSON tem menos bytes, isso muito pela economia das tags do xml (), isso bem notrio quando precisamos trafegar milhares de registros de um lado pro outro (Servidor > Cliente | Cliente > Servidor).Apesar de ter surgido do JavaScript, JSON pode ser usado em grande partes das linguagens de programao como Java, PHP, Delphi, Lua, Python e etc. Suas APIs prontas so bem mais simples de utilizar comparada as APIs de XML que conhecemos hoje.Vamos ver um exemplo onde ocorre o parser (converso) de um arquivo JSON e de um XML em objetos JavaScript apenas para que fique mais claro o exemplo.Parser de um arquivo XML:Construmos uma funo para carregar o arquivo XML:?function xmlLoader(url){var Loader = new XMLHttpRequest();Loader.open("GET", url ,false);Loader.send(null);return Loader.responseXML;}

Precisamos de uma funo para trabalhar com Objetos em JavaScript onde a mesma um construtor:?function produto(nome,preco){/* determina os valores da propriedade do objeto*/this.nome = nome;this.preco = preco;}

Ento, finalmenteconstrumosa funo para fazer o Parser do arquivo XML para Objetos recebendo como argumento um arquivo XML (xmlNode):?function loadObjetcs(xmlNode){var produtos=new Array();var tamanho = xmlNode.getElementsByTagName("produtos").length;for(var i=0;i