aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/glossary/json/index.html
blob: 33dc530de0441de304e4d0ec8ee21c51ee8e80c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
---
title: JSON
slug: Glossary/JSON
translation_of: Glossary/JSON
original_slug: JSON
---
<p><strong>JSON</strong> (Notação de Objetos JavaScript) e um formato de dados permutável. Ele assemelha - se próximo a um sub tipo da sintaxe do <a href="/en-US/docs/Trash/MDN/JavaScript/About_JavaScript">JavaScript</a>, mas ele não é um tipo de script. (Veja <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON">JSON</a> em <a href="/en/JavaScript/Reference">Referências JavaScript</a> para todos os detalhes). Isto é útil quando escrevemos qualquer tipo de aplicação baseada em JavaScript, incluindo web sites e extensões de navegadores. Por exemplo, você pode armazenar informações no formato em JSON no formato de <a href="/en/DOM/document.cookie">cookies</a>, ou você pode armazenar as preferências de extensões em JSON como valor de texto nas preferências do navegador.</p>
<p>JSON e capaz de representar números, booleanos, textos, vazios, e listas (sequência ordenada de valores) e objetos (mapeamento de valores de texto) composto por estes valores (ou por outras listas e objetos). Ele não representa nativamente tipos complexos de dados como funções, expressões regulares, datas, e muito mais. (Objetos de dados por padrão inicializam como texto contendo os dados no formato ISO, enquanto eles não mudam, a informação não é completamente perdida.) Se você precisa preservar muitos valores, você pode transformar valores como eles são inicializados, ou prioritariamente descontinuados, para habilitar JSON para representar tipos de dados adicionais.</p>
<table class="topicpage-table">
 <tbody>
  <tr>
   <td>
    <h4 id="Documentation" name="Documentation"><a href="/Special:Tags?tag=JSON&amp;language=en">Documentação</a></h4>
    <dl>
     <dt>
      <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON"><font face="monospace">Objetos JSON</font></a></dt>
     <dt>
      <small><small>Os objetos JSON contém métodos para converter valores para Notação de objetos javascript (JSON) e para converter JSON para valores.</small></small></dt>
    </dl>
    <dl>
     <dt>
      <small><a href="/en/Using_native_JSON"><font face="monospace">Usando o JSON nativo</font></a><span style="line-height: 1.5;"> </span></small></dt>
     <dt>
      <small><small>Este artigo cobre o ECMAScript 5 compilando a linguagem nativa JSON somado em Gecko 1.9.1.</small></small></dt>
    </dl>
    <dl>
     <dt>
      <small><a href="/en/JSON/JSONPath">Caminho JSON</a></small></dt>
     <dt>
      <small><small>Caminho JSON significa o uso XPath como sintaxe para a estrutura de requisições do JSON. Ele não é o padrão, mas apresenta maneiras de requisição em JavaScript diretamente sem precisar converte - la para xml.</small></small></dt>
     <dt>
       </dt>
     <dt>
      <small><a href="/en/Downloading_JSON_and_JavaScript_in_extensions" title="en/Downloading_JSON_and_JavaScript_in_extensions">Baixando JSON e extensões em Javascript</a></small></dt>
     <dt>
      <small><small>A pratica habitual encontrada em muitas extensões está usando XMLHttpRequest (ou outros mecanismos) para baixar Javascript ou <a href="/en/JSON">JSON </a>(eles são diferentes) para um site web remoto. Uma vez o conteúdo já sido baixado, a extensão escrita procedida pelo uso <a href="/en/Core_JavaScript_1.5_Reference/Functions/eval">eval()</a> para decodificar o texto contendo objetos JavaScript, a escolha e uma prática perigosa e não deve, de fato passar na revisão <a href="http://addons.mozilla.org">AMO.</a> Este artigo mostra como evitar isto.</small></small></dt>
    </dl>
    <dl>
     <dt>
      <small><a href="/en/JXON" title="en/JXON">JXON</a></small></dt>
     <dd>
      <small><small>JXON padrões sem perdas de Notação de Objetos JavaScript XML, ele é um nome genérico pelo qual e definida a representação da árvore dos objetos JavaScript (JSON) usando XML.</small></small></dd>
    </dl>
    <dl>
     <dt>
      <small><a href="/en/JavaScript/Reference/Global_Objects/JSON/stringify" title="en/JavaScript/Reference/Global_Objects/JSON/stringify"><code>Método JSON.stringify</code></a></small></dt>
     <dd>
      <small><small>Converta valores para JSON, opcionalmente substituindo valores se a função for específica, ou opcionalmente incluindo somente propriedades especificas se a substituição na lista for especifica.</small></small></dd>
    </dl>
    <dl>
     <dt>
      <small><a href="/en/JavaScript/Reference/Global_Objects/JSON/parse" title="en/JavaScript/Reference/Global_Objects/JSON/parse"><code>Método JSON.parse</code> </a></small></dt>
     <dd>
      <small><small>Analisa a string como JSON, opcionalmente transforma o valor produzido pela análise.</small></small></dd>
    </dl>
    <p><small><span class="alllinks"><a href="/Special:Tags?tag=JSON&amp;language=en" title="Pages tagged with: JSON">Veja Todos...</a></span></small></p>
   </td>
   <td>
    <h4 id="Community" name="Community">Comunidade</h4>
    <ul>
     <li>Veja os foruns Mozilla...</li>
     <li> </li>
    </ul>
    <ul>
     <li>{{DiscussionList("dev-tech-json","mozilla.dev.tech.json") }}</li>
    </ul>
    <h4 id="Tools" name="Tools">Ferramentas</h4>
    <ul>
     <li><a class="internal" href="/en/JavaScript/Reference/Global_Objects/JSON#Browser_compatibility" title="JSON object polyfills">JSON polyfills</a></li>
     <li><a class="external" href="http://jsonselect.org" title="http://jsonselect.org/">JSONSelect</a></li>
     <li> </li>
    </ul>
    <p style="text-align: right;"><span class="alllinks"><a href="/Special:Tags?tag=JSON:Tools&amp;language=en" title="Pages tagged with: JSON:Tools">Veja Todos...</a></span></p>
    <h4 id="Related_Topics" name="Related_Topics">Topicos Relacionados</h4>
    <dl>
     <dd>
      <a href="/en/AJAX" title="en/AJAX">AJAX</a>, <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>, <a href="/en/XUL" title="en/XUL">XUL</a></dd>
    </dl>
   </td>
  </tr>
 </tbody>
</table>
<h2 id="JSON_in_Firefox_2" name="JSON_in_Firefox_2">Usando JSON atráves de objetos JavaScript JSON</h2>
<p>O mais simples, fácil caminho para usar JSON e através do padrão de <a href="/en/JavaScript/Reference/Global_Objects/JSON">objetos JSON</a> em JavaScript.  Use <a href="/en/JavaScript/Reference/Global_Objects/JSON/stringify">JSON.stringify</a> para inicializar valores em JSON, e use <a href="/en/JavaScript/Reference/Global_Objects/JSON/parse">JSON.parse</a> para deserializar um valor JSON.</p>
<p>Por exemplo, para inicializar um objeto JavaScript, use o método JSON.stringify():</p>
<pre class="brush: js">var foo = {};
foo.bar = "new property";
foo.baz = 3;

var JSONfoo = JSON.stringify(foo);
</pre>
<p><code>JSONfoo</code> now holds <code>{"bar":"new property","baz":3}</code>. Para fazer JSONfoo voltar a ser um objeto JavaScript faça:</p>
<pre class="brush: js">var backToJS = JSON.parse(JSONfoo);
</pre>
<p>Para mais informações, veja a <a href="/en/JavaScript/Reference/Global_Objects/JSON">documentação de objetos JSON</a>.</p>
<h2 id="Método_toJSON()">Método toJSON()</h2>
<p>Se um objeto define o método toJSON(), JSON.stringify pode se chamar estes métodos para determinar a representação de objetos JSON. Por exemplo:</p>
<pre class="brush: js">x = {};
x.foo = "foo";
x.toJSON = function() { return "bar"; };
var json1 = JSON.stringify(x);
</pre>
<p><code>json1</code> now contains '"bar"'.</p>
<h2 id="Limitações">Limitações</h2>
<p>Você não pode inicializar objetos que sejam membros escolhidos para funções. As especificações JSON não permitem. Por exemplo:</p>
<pre class="brush: js">foo.qwerty = function(){alert('foobar');};
foo.qwerty()
var JSONfoo = JSON.toString(foo);
</pre>
<p>will raise a <code>TypeError on line XXX: No JSON representation for this object!</code></p>
<h2 id="Usando_JSON_através_do_nsIJSON">Usando JSON através do nsIJSON</h2>
<p>Versões do Firefox anteriores a 3.5 nativamente não suportam JSON, e há um único caminho para acessar as funcionalidades JSON é através do componente <code><a href="/en/XPCOM_Interface_Reference/nsIJSON" title="en/nsIJSON">nsIJSON</a>, implementado</code> desde o Firefox 3. Codificando e decodificando são executados através nsIJON's métodos de codificação e decodificação. Estes métodos não acessam o JSON através de objetos JSON, e eles somente suportam valores escolhidos por listas de objetos, sem textos, booleanos, números ou vazios. (Estes valores são suportados somente por listas e objetos: o simples número 5 não irá funcionar, mas o objeto {"valor": 5} funcionará.)</p>
<p>Por causa nsIJSON não ser tão eficaz como um objeto JSON, ele codifica e decodifica métodos já removidos para Firefox 7. Desenvolvedores devem escolher para uso objeto JSON.</p>
<p>O seguinte código inicializa um objeto JavaScript usando <code>nsIJSON</code>:</p>
<pre class="brush: js">var Ci = Components.interfaces;
var Cc = Components.classes;

var foo = {};
foo.bar = "new property";
foo.baz = 3;

var nativeJSON = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON);
var JSONfoo = nativeJSON.encode(foo);
</pre>
<p>The <code>JSONfoo</code> variable now holds the string <code>{"bar":"new property","baz":3}</code>. To create an object corresponding to <code>JSONfoo</code>, just do:</p>
<pre class="brush: js">var backToJS = nativeJSON.decode(JSONfoo);
</pre>
<h2 id="Using_JSON" name="Using_JSON">Usando JSON em outras situações</h2>
<p>Enquanto na teoria e possível usar JSON usando <a href="/en/JavaScript/Reference/Global_Objects/eval">eval</a> (mas somente para descerializar objetos, e não para inicializar textos) ou usando <a href="https://github.com/douglascrockford/JSON-js">json2.js</a>, Está não é uma boa ideia. Isto não e seguro para analisar JSON usando eval por que ele permite muito mais sintaxe que JSON faz (Melhora para execução de um código aleatório). Como para json2.js, este problema e que ele adiciona métodos para compilação como Object.prototype, escolha o mais útil para parar a execução do código antecipando está possibilidade.</p>
<p>Você deve quase sempre usa - lo ou os métodos formulados para usar JSON em preferências para qualquer outro caminho.</p>
<h2 id="See_also" name="See_also">Veja também</h2>
<ul>
 <li>{{ interface("nsIJSON") }}</li>
</ul>
<p>{{ languages( { "ja": "ja/JSON", "zh-cn": "zh-cn/JSON" } ) }}</p>