﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Jaydson Gomes &#187; JSON</title>
	<atom:link href="http://jaydson.org/category/json/feed/" rel="self" type="application/rss+xml" />
	<link>http://jaydson.org</link>
	<description>Desenvolvimento Web e outras coisas</description>
	<lastBuildDate>Mon, 06 Sep 2010 03:23:23 +0000</lastBuildDate>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
		<item>
		<title>Javascript levado a sério</title>
		<link>http://jaydson.org/javascript-levado-a-serio/</link>
		<comments>http://jaydson.org/javascript-levado-a-serio/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 01:35:57 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[JSON]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Palestras]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=327</guid>
		<description><![CDATA[Javascript é a linguagem de script mais popular da internet. Porém, mesmo com toda essa fama, o Javascript ainda é incompreendido. Segundo Douglas Crockford, um dos mestres da linguagem, essa incompreensão tem varias origens. Este foi um dos tópicos na palestra que fiz na III Mostra de iniciação científica do Senac-RS. A palestra conta um [...]]]></description>
			<content:encoded><![CDATA[<p>Javascript é a linguagem de script mais popular da internet.<br />
Porém, mesmo com toda essa fama, o Javascript ainda é incompreendido.<br />
Segundo <a title="Douglas Crockford" href="http://en.wikipedia.org/wiki/Douglas_Crockford" target="_blank">Douglas Crockford</a>, um dos mestres da linguagem, essa incompreensão tem varias origens.<br />
Este foi um dos tópicos na palestra que fiz na III Mostra de iniciação científica do Senac-RS.</p>
<p><span id="more-327"></span><br />
A palestra conta um pouco da história do Javascript, explicando o porque do prefixo JAVA no nome da linguagem entre outros detalhes.<br />
A palestra foca muito no desenvolvimento de Javascript profissional, como sugere o nome.</p>
<p>Espero que todos aproveitem. E qualquer dúvida, comentem ai.</p>
<div id="__ss_2318172" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Javascript levado a serio" href="http://www.slideshare.net/jaydson/javascript-levado-a-serio">Javascript levado a serio</a><object style="margin:0px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=javascriptlevadoaserio-091022063308-phpapp01&amp;stripped_title=javascript-levado-a-serio" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=javascriptlevadoaserio-091022063308-phpapp01&amp;stripped_title=javascript-levado-a-serio" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/jaydson">jaydson</a>.</div>
</div>
<p>Para quem assistiu a palestra e para quem não assistiu também, segue abaixo o link dos códigos utilizados:</p>
<p><a href="http://jaydson.org/code/palestras/js-levado-a-serio/source.rar">http://jaydson.org/code/palestras/js-levado-a-serio/source.rar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/javascript-levado-a-serio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
		<item>
		<title>JSON nativo Firefox 3.5</title>
		<link>http://jaydson.org/json-nativo-firefox-3-5/</link>
		<comments>http://jaydson.org/json-nativo-firefox-3-5/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 01:04:10 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=224</guid>
		<description><![CDATA[Muita coisa nova e útil para nós desenvolvedores no Firefox 3.5. Novo motor Javascript, suporte HTML 5 entre várias outras. Acessem aqui caso ainda não tenham visto(deveriam caso sejam desenvolvedores). Apesar de o JSON já ser nativo desde a versão 3.1, agora é que isso ficou bem evidenciado. Bom, não vou comentar o que é [...]]]></description>
			<content:encoded><![CDATA[<p>Muita coisa nova e útil para nós desenvolvedores no Firefox 3.5.<br />
Novo motor Javascript, suporte HTML 5 entre várias outras. <a title="Firefox 3.5" href="https://developer.mozilla.org/En/Firefox_3.5_for_developers" target="_blank">Acessem aqui </a>caso ainda não tenham visto(deveriam caso sejam desenvolvedores).</p>
<p>Apesar de o JSON já ser nativo desde a versão 3.1, agora é que isso ficou bem evidenciado.</p>
<p>Bom, não vou comentar o que é JSON, até porque já fiz isto em outro post, então caso não saiba o que é JSON(deveria se é desenvolvedor) veja o meu <a title="JSON" href="http://jaydson.org/json/" target="_blank">post antigo</a>, ou melhor ainda, acesse a <a title="JSON.org" href="http://json.org/" target="_blank">página oficial</a>.</p>
<p><span id="more-224"></span></p>
<p><strong>O que significa JSON nativo no browser?</strong><br />
Bom, isso significa que o desenvolvedor não precisará usar nenhuma biblioteca extra para fazer o parse de um objeto JSON, e também não será necessário usar a função <a title="Eval()" href="http://www.w3schools.com/jsref/jsref_eval.asp" target="_blank">eval()</a> nativa no Javascript para fazer isso, o que é bem aconselhável pela insegurança desta função.</p>
<p><strong>Benefícios</strong>:<br />
Vários.<br />
Em primeiro lugar a possibilidade de parsear um objeto JSON sem o uso do eval(). Isso é extramamente útil pois o eval() executa toda a string recebida sem fazer nenhuma análise, ou seja, se a string contiver funções, estas serão executadas.<br />
Por esse motivo usar JSON nativo é muito mais seguro, pois não são suportadas funções. É feita uma análise na string recebida e então a conversão é feita apenas das propriedades do objeto.<br />
Outra funcionalidade é esta análise feita na string, se o JSON estiver mal formatado será gerado um parse error.<br />
E o benefício que mais me agrada: <span style="color: #3366ff;"><strong>Rapidez</strong></span>!<br />
Sim, o parse de um objeto JSON nativamente é muito rápido, mesmo!<br />
Como provar isso?<br />
Simples&#8230; Código!</p>
<p>Primeiro criei um arquivo JSON que peguei de exemplo no blog da <a title="Blog da Mozilla" href="http://blog.mozilla.com/webdev/2009/02/12/native-json-in-firefox-31/" target="_blank">Mozilla</a> onde eles explicam sobre o uso do JSON nativo.<br />
Este arquivo é consideravelmente grande, possui um array com <span style="color: #ff0000;"><strong>2918 objetos.<br />
</strong></span>Não vou colocar o código aqui por razões óbvias&#8230;mas segue o link pra quem tiver curiosidade de ve-lo: <a title="Exemplo arquivo JSON" href="http://graphs-stage.mozilla.org/api/test" target="_blank">http://graphs-stage.mozilla.org/api/test</a></p>
<p>Agora vamos ao código javascript usando jQuery para fazer uma requisição Ajax e buscar o conteúdo desse arquivo.</p>
<pre class="brush: jscript;">

var json = $.ajax({
url: &quot;test.json&quot;,
async: false
}).responseText;
</pre>
<p>Este pequeno trecho do código mostra que a variável <strong>json </strong>agora possui o conteudo do arquivo(aquele bem grande com 2918 objetos).</p>
<p>Agora que temos uma &#8220;Stringona&#8221; vamos tranforma-la em um objeto JSON.<br />
Primeiro usando o <strong>eval()</strong>:</p>
<pre class="brush: jscript;">

var obj = eval('(' + json + ')');
</pre>
<p>E agora usando o parser nativo !!! \O/</p>
<pre class="brush: jscript;">

var obj = JSON.parse(json);
</pre>
<p>Para quem já usou  a biblioteca JS disponível no <a title="JSON.org" href="http://json.org" target="_blank">json.org</a> pode notar que a sintaxe é a mesma, a direrença aqui é que estamos trabalhando nativamente.<br />
Bom, sabemos que o parser nativo é mais seguro que o eval(), mas como saber se é mais rápido?<br />
O <a title="Firebug" href="http://getfirebug.com/" target="_blank">Firebug</a> nos ajuda a medir isso.<br />
Vamos ver o código, primeiro medindo o tempo em milisegundos com o eval():</p>
<pre class="brush: jscript;">

console.time(&quot;Eval&quot;);
var obj = eval('(' + json + ')');
console.timeEnd(&quot;Eval&quot;);
</pre>
<p>Para quem não sabe (se é desenvolvedor deveria ), o Firebug possui uma API que ajuda os desenolvedores de várias maneiras, a abordada aqui  é a função console.time(), que consegue medir o tempo em milisegundos de uma determinada instrução.</p>
<p><strong><span style="color: #3366ff;">Resultado com eval():</span></strong> 4004ms para executar o parse.</p>
<p>Agora com parser nativo:</p>
<pre class="brush: jscript;">

console.time(&quot;JSON.parse&quot;);
var obj = JSON.parse(json);
console.timeEnd(&quot;JSON.parse&quot;);
</pre>
<p><strong><span style="color: #3366ff;">Resultado com JSON.parse:</span></strong> 50ms para executar o parse.</p>
<p>Bom, nem preciso comentar, os resultados falam por si só.</p>
<p>Voces devem estar pensando agora que tudo isso é lindo, mas que  só funciona no Firefox&#8230;   <img src='http://jaydson.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
Mas como JSON é cada vez mais usado por todo o mundo em diversos tipos de aplicações, não é apenas a Mozilla que implementa esta solução nativa.<br />
Acreditem, o IE 8 também possui suporte nativo a JSON. Veja com seus próprios olhos: <a title="IE 8 JSON nativo" href="http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx" target="_blank">http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx</a></p>
<p>Mas claro que ainda não podemos contar com o suporte de todos os Browsers, e para isso podemos usar alguma biblioteca que desempenhe este papel. Eu indico a própria do site json.org: <a title="JSON Lib" href="http://www.json.org/json2.js" target="_blank">http://www.json.org/json2.js</a></p>
<p>Nos exemplos acima mostrei como parsear uma string em um objeto JSON, mas podemos fazer o inverso também:</p>
<pre class="brush: jscript;">

var Pessoa = {};
Pessoa.nome = &quot;Joaozinho&quot;;
Pessoa.idade = &quot;30&quot;;

var jsonString = JSON.stringify(Pessoa);
console.log(jsonString);
</pre>
<p>No exemplo criamos um objeto Javascript, e em seguida o transformamos em um JSON:</p>
<pre class="brush: jscript;">

{&quot;nome&quot;:&quot;Joaozinho&quot;,&quot;idade&quot;:&quot;30&quot;}
</pre>
<p>Buenas pessoal, por hora é isso.</p>
<p>Referências:<br />
<a title="Firefox Blog" href="http://blog.mozilla.com/webdev/2009/02/12/native-json-in-firefox-31/" target="_blank">http://blog.mozilla.com/webdev/2009/02/12/native-json-in-firefox-31/</a><br />
<a title="Json nativo Firefox" href="https://developer.mozilla.org/en/Using_JSON_in_Firefox" target="_blank">https://developer.mozilla.org/en/Using_JSON_in_Firefox</a><br />
<a title="JSON.org" href="http://www.json.org/" target="_blank">http://www.json.org/</a><br />
<a title="Json nativo IE 8" href="http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx" target="_blank">http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx</a><br />
<a title="Json nativo Firefox" href="http://starkravingfinkle.org/blog/2008/02/extension-developers-native-json-parsing/" target="_blank">http://starkravingfinkle.org/blog/2008/02/extension-developers-native-json-parsing/<br />
</a></p>
<p>Sintam-se a vontade para comentar, criticar, perguntar, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/json-nativo-firefox-3-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
		<item>
		<title>Json</title>
		<link>http://jaydson.org/json/</link>
		<comments>http://jaydson.org/json/#comments</comments>
		<pubDate>Mon, 04 May 2009 17:13:43 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[JSON]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=75</guid>
		<description><![CDATA[Bom, eu até já tinha ouvido falar do tal do JSON(Djeison), mas nunca havia parado pra estuda-lo e ver o seu funcionamento. Após ir em uma entrevista de emprego, onde os entrevistadores comentaram a respeito do JSON, eu fiquei mais curioso sobre o assunto. O que acontece é que JSON esta na crista da onda&#8230;quero [...]]]></description>
			<content:encoded><![CDATA[<p>Bom, eu até já tinha ouvido falar do tal do JSON(Djeison), mas nunca havia parado pra estuda-lo e ver o seu funcionamento.<br />
Após ir em uma entrevista de emprego, onde os entrevistadores comentaram a respeito do JSON, eu fiquei mais curioso sobre o assunto.<br />
O que acontece é que JSON esta na crista da onda&#8230;quero dizer que é uma tecnologia que tem o seu uso difundido, e isto se deve pelo fato de JSON ser simples e poderoso.<br />
JSON é uma alternativa para XML, ele também exerce o mesmo papel que o XML como formato para transporte de dados.<br />
Uma coisa importante para a aceitação do JSON foi por ser mais fácil escrever um analisador JSON, por exemplo em Javascript através da função eval().<br />
Vários nomes de peso adotaram JSON, posso citar alguns que sei: <strong>Google</strong>, <strong>Yahoo</strong>, <strong>Meebo</strong>&#8230;<br />
Perguntas que eu me fazia antes de estudar JSON:</p>
<p><strong><span style="color: #ff0000;">Ta, mas qual biblioteca devo baixar?</span></strong><br />
<strong><span style="color: #ff0000;">Como assim notação de objeto<span style="color: #ff0000;">s</span></span><span style="color: #ff0000;">?</span></strong><br />
<span style="color: #ff0000;"><strong>JSON é Javascript?</strong></span></p>
<p>Bom, em primeiro lugar, eu consegui fazer bastante coisa sem baixar um KB sequer, ou seja, não precisei baixar nenhuma biblioteca.<br />
JSON é um acrônimo para JavaScript Object Notation &#8211; Segundo o próprio <a href="http://www.json.org/json-pt.html">site do JSON</a> ele é: uma formatação leve de troca de dados. Para seres humanos, é fácil de ler e escrever. Para máquinas, é fácil de interpretar e gerar.<br />
Está baseado em um subconjunto da linguagem de programação JavaScript, Standard ECMA-262 3a Edição -Dezembro &#8211; 1999.<br />
JSON é em formato texto e completamente independente de linguagem, pois usa convenções que são 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.<br />
E por último, a resposta anterior já respondeu&#8230;JSON é um subconjunto da notação de objeto de JavaScript, mas seu uso não requer Javascript exclusivamente.<br />
Agora, vamos a parte boa: o código !!! Como funciona isso ????<br />
Primeiro vamos ver como criar um JSON:<br />
JSON está constituído em duas estruturas:<br />
* Uma coleção de pares nome/valor. Em várias linguagens, isto é caracterizado como um object, record, struct, dicionário, hash table, keyed list, ou arrays associativas.<br />
* Uma lista ordenada de valores. Na maioria das linguagens, isto é caracterizado como uma array, vetor, lista ou sequência.<br />
Estas são estruturas de dados universais. Virtualmente todas as linguagens de programação modernas as suportam, de uma forma ou de outra. É aceitavel que um formato de troca de dados que seja independente de linguagem de programação se baseie nestas estruturas.</p>
<p>Agora que já vimos como é, vamos a um exemplo:</p>
<pre class="brush: jscript;">
var myJSONObject = {&quot;cliente&quot;: [
{&quot;nome&quot;: &quot;Joao da Silva&quot;, &quot;idade&quot;: &quot;25&quot;, &quot;sexo&quot;: &quot;masculino&quot;},
{&quot;nome&quot;: &quot;Juca da Silva&quot;, &quot;idade&quot;: &quot;36&quot;, &quot;sexo&quot;: &quot;masculino&quot;},
{&quot;nome&quot;: &quot;Maria Madalena&quot;, &quot;idade&quot;: &quot;18&quot;, &quot;sexo&quot;: &quot;feminino&quot;}
]
};
</pre>
<p>No código acima, criamos uma estrutura de cliente, contendo valores para 3 clientes.<br />
Agora vamos transformar isso em um objeto Javascript.</p>
<pre class="brush: jscript;">

var myObject = eval(myJSONObject);
document.write('Nome: ' + myObject.cliente[i].nome + &quot;&lt;br&gt;&quot;);
document.write('Idade: ' + myObject.cliente[i].idade + &quot;&lt;br&gt;&quot;);
document.write('Sexo: ' + myObject.cliente[i].sexo + &quot;&lt;br&gt;&quot;);
document.write('___________________&lt;br&gt;');
}
</pre>
<p>Como podemos notar no código acima, depois de converter o texto JSON em Objeto, podemos acessar os seus dados facilmente.<br />
<a href="http://jaydson.org/code/json/teste_json.html" target="_blank">Veja aqui o resultado deste código.</a></p>
<p>Isso foi o básico. Já fiz algumas coisas mais complexas, e estou preparando um novo Post sobre JSON + AJAX + PHP + Banco de Dados&#8230;<br />
Aguardem, e qualquer dúvida postem ai, ou me mandei e-mail.</p>
<p>\O/\O/\O/\O/\O/\O/</p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/json/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
	</channel>
</rss>
