1. Introdução ao JSON
JSON (notação de objeto JavaScript), semelhante ao XML, é um formato de troca de dados. Por exemplo, se o Java gerar dados para JavaScript, além de usar o XML, você também poderá usar o JSON;
A vantagem do JSON sobre XML é que é muito simples de expressar; Site oficial: http://www.json.org/
JSON é x em Ajax (ou seja, pode substituir XML); ------ do fundador da JSON;
Nota: JSON não é um formato de documento, não há documentos *.json. Geralmente, os documentos do formato JSON são encontrados no txt e o XML pode ser um padrão;
JSON Online Editor: http://tools.vevb.com/tools/json/json_editor.htm
2. Estrutura de dados JSON
JSON tem duas estruturas de dados:
(1) mapa, também conhecido como objeto; {......}
(2) matriz; [......]
Ou seja, todos os objetos JSON devem ser representados nessas formas;
1.Map
Simplificando, é um mapa em Java. O par de nomes-valor é fornecido e o nome e o valor são separados por ":" e os dois mapas são separados por "," e a representação geral é a seguinte:
{'key1': 'value1', 'key2': 'value2'}
A seguir, a imagem oficial do site:
2.Rray
É uma matriz no sentido comum, com a forma geral da seguinte maneira:
['ARR1', 'ARR2', 'ARR3'];
A seguir, a imagem oficial do site:
O valor na figura pode ser:
Resumir:
(1) existem apenas dois tipos de estruturas de dados no JSON;
(2) pode ser aninhado, como objetos podem ser aninhados na matriz;
(3) Lembre -se: o objeto é representado por {} e a matriz é representada por [];
3. Exemplo de conversão JSON e XML
Qualquer XML mencionado acima pode ser convertido em pacote json;
1. XML simples
Formato XML:
<Pesso> <name> xiazdong </name> <age> 20 </a Age> </sot>
JSON Format:
{"Name": "Xiazdong", "Age": 20}2. XML complexo
Formato XML:
<Section> <title> livro </itit> <Sinating> <autor name = "Author-1"/> <livro price = "$ 11"/> </sinating> <Sinating> <autor name = "Author-2"/> <PREÇO DO LIVRO = "$ 22"/> </Sigining> </section>
JSON Format:
"Seção": {"Title": "Book", "Signing": [{<span style = "space branco: pre"> </span> "autor": {"name": "Author-1"}, "Book": {"title": "Nome", "Price": "$ 11 "Preço": "$ 22"}} <span style = "white-space: pre"> </span>]}}Nota: As propriedades no XML também são representadas pelo mapa da JSON;
4. Pacote json
Se quisermos usar o pacote JSON, podemos baixar o código -fonte do pacote json e adicionar esses códigos ao projeto Eclipse e chamá -lo;
Se você quiser ver a documentação da API, pode ver: http://www.json.org/java/index.html
As duas classes mais usadas no pacote JSON são JsonObject e JsonArray, que representam duas estruturas de dados, respectivamente;
1. Instância do código JsonObject
pacote com.xiazdong.json; importar weibo4j.org.json.jsonArray; importar weibo4j.org.json.jsonObject; public class Test {public static void main (string [] args) lança exceção {jsonObject jsonObj = new jsonObject ("{'name': 'xiazDong', 'idade': 20}"); Nome da string = jsonobj.getString ("nome"); int age = jsonObj.getint ("idade"); System.out.println (nome+":"+idade); }}2. Instância de código JsonArray
JsonArray Array = novo JsonArray (String str); // converte a string em jsonArrayInt comprimento = array.length (); // retorna o comprimento da matriz;
pacote com.xiazdong.json; importar weibo4j.org.json.jsonArray; importar weibo4j.org.json.jsonObject; public class Test {public static void main (string [] args) lança exceção {jsonArray jsonArray = new jsonArray ("[{'name': 'xiazdong', 'idade': 20}, {'nome': 'xzdong', 'idade': 15}]"); for (int i = 0; i <jsonArray.length (); i ++) {string name = jsonArray.getjsonObject (i) .getString ("nome"); Int Age = JsonArray.getjsonObject (i) .getInt ("Age"); System.out.println ("name ="+nome); System.out.println ("Age ="+Age); }}} 3. Instâncias de código JsonObject e JsonArray aninhadas
pacote com.xiazdong.json; importar weibo4j.org.json.jsonArray; importar weibo4j.org.json.jsonObject; public class Test {public static void main (string [] args) lança exceção {string str = "{'name': 'xiazdong', 'idade': 20, 'livro': ['book1', 'book2']"; JsonObject Obj = novo JsonObject (STR); System.out.println (obj.getjsonArray ("livro"). GetString (0)); }}4. Exemplo de código JSonstringer
O JSonstringer pode ser usado para criar rapidamente um texto de formato JSON e convertê -lo em uma string, que pode ser gravada em um arquivo;
JSonstringer é uma subclasse de JsonWriter;
JSonstringer é geralmente construído através do objeto (). Key (). Value (). Key (). Value (). EndoBject ();
objeto () indica que um objeto é iniciado, ou seja, adicionando {;
endoBject () indica que um objeto termina, ou seja, adicionando};
Array () indica que uma matriz é iniciada, ou seja, adicionando um [;
earRray () indica que uma matriz termina, ou seja, adicionando uma];
key () significa adicionar uma chave;
valor () significa adicionar um valor;
pacote com.xiazdong.json; importar weibo4j.org.json.jsonstringer; classe pública JSonstringerDemo {public static void main (string [] args) lança exceção {jSonstringer stringer = new JSonstringer (); String str = stringer.Object (). Key ("Nome"). Value ("Xiazdong"). Key ("Age"). System.out.println (str); }} Escrita complexa de formato json
pacote com.xiazdong.json; importar java.io.file; importar java.io.fileReader; importar weibo4j.org.json.jsonArray; importar weibo4j.org.json.jsonObject; importar weibo4j.org.json.jsonstringer; importar weibo4j.org.json.jsonstringer; importar weibo4j.org.json.jsontkener; classe pública jSonstringerDemo {public static void main (string [] args) lança exceção {jSonstringer js = new jSonstringer (); JsonObject obj2 = new jsonObject (); JsonObject obj3 = new jsonObject (); JsonObject obj4 = new jsonObject (); obj4.put ("title", "book1"). put ("preço", "$ 11"); obj3.put ("livro", obj4); obj3.put ("autor", new jsonObject (). put ("nome", "autor-1")); JsonObject obj5 = new jsonObject (); JsonObject obj6 = new jsonObject (); obj6.put ("title", "book2"). put ("preço", "$ 22"); obj5.put ("livro", obj6); obj5.put ("autor", new jsonObject (). put ("nome", "autor-2")); JsonArray obj7 = new jsonArray (); obj7.put (obj3) .put (obj5); obj2.put ("title", "livro"); obj2.put ("assinatura", obj7); js.Object (). Key ("Session"). Value (obj2) .EndoBject (); System.out.println (js.toString ()); PrintWriter Out = new PrintWriter (new FileOutputStream (1.txt)); out.println (js.toString ()); }} O código acima gera o seguinte formato JSON:
{"Seção": {"Title": "Book", "Signing": [{"Author": {"Name": "Author-1"}, "Book": {"Title": "Book1", "Price": "$ 11:"}: {"Author": "Nome": "Author-2"}, "": {": {" Author ":" "Nome": "Author-2":}, "":}: {"Author": "Nome": "Author-2":}, "":}: {"Author": "Nome": "Author-2": "": ": }}5.JsoNoTokener Exemplo de código
O JSONTOKEN é usado para ler arquivos no formato JSON;
JsonObject Obj = novo JsonObject (novo JSONTOKENER (java.io.reader)); Você pode ler um JsonObject de um arquivo;
JsonArray Obj = novo JsonArray (novo JsonArray (java.io.reader)); Você pode ler um JsonArray de um arquivo;
{'nome': 'xiazdong', 'livro': ['book1', 'book2']} pacote com.xiazdong.json; importar java.io.file; importar java.io.fileReader; importar weibo4j.org.json.jsonObject; importar weibo4j.org.json.jsontoken; classe pública JSonstringerDemo {public static void main (string [] args) lança exceção {jsonObject obj = new jsonObject (new jsonObject (new jsontoken (new fileReader (new File ("1.txt"))); system.out.println (obj.getjsonArray ("book")); Código de leitura em formato JSON complexo:
{"Seção": {"Title": "Book", "Signing": [{"Author": {"Name": "Author-1"}, "Book": {"Title": "Book1", "Price": "$ 11:"}: {"Author": "Nome": "Author-2"}, "": {": {" Author ":" "Nome": "Author-2":}, "":}: {"Author": "Nome": "Author-2":}, "":}: {"Author": "Nome": "Author-2": "": ": }} pacote com.xiazdong.json; importar java.io.file; importar java.io.fileReader; importar weibo4j.org.json.jsonObject; importar weibo4j.org.json.jsontoken; classe pública jSonstringerDemo {public static void main (string [] args) lança exceção {jsonObject obj = new jsonObject (new jsonObject (new jsontoker (new filereader (novo arquivo ("1.txt")))); System.out.println (obj.getjsonObject ("Seção").Resumir:
1 Em Java, o formato JSON String é melhor representado em citações únicas;
2. Use JsonObject+JSONTOKen para ler objetos de arquivo de formato json;
3. Use PrintWriter+JSonstringer para escrever arquivos JSON;
Nota: Como eu originalmente queria tentar escrever com o JSONWriter, mas não foi bem -sucedido; Então, eu só posso usar o JSonstringer+PrintWriter para escrever;
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.