1. Introduction à JSON
JSON (notation d'objet JavaScript), similaire à XML, est un format d'échange de données. Par exemple, si Java génère des données à JavaScript, en plus d'utiliser XML, vous pouvez également utiliser JSON;
L'avantage de JSON sur XML est qu'il est très simple à exprimer; Site officiel: http://www.json.org/
JSON est x dans Ajax (c'est-à-dire qu'il peut remplacer XML); ------ du fondateur de JSON;
Remarque: JSON n'est pas un format de document, il n'y a pas de documents * .json. Généralement, les documents de format JSON se trouvent dans TXT et XML peut être une norme;
Éditeur en ligne de JSON: http://tools.vevb.com/tools/json/json_editor.htm
2. Structure de données JSON
JSON a deux structures de données:
(1) Carte, également connue sous le nom d'objet; {......}
(2) tableau; [......]
C'est-à-dire que tous les objets JSON doivent être représentés sous ces formes;
1.Map
Autrement dit, c'est une carte à Java. La paire de valeurs de nom est donnée et le nom et la valeur sont séparés par ":" et les deux cartes sont séparées par "", et la représentation générale est la suivante:
{'key1': 'value1', 'key2': 'value2'}
Ce qui suit est l'image du site officiel:
2.
C'est un tableau au sens ordinaire, avec la forme générale comme suit:
[«Arr1», «Arr2», «Arr3»];
Ce qui suit est l'image du site officiel:
La valeur de la figure peut être:
Résumer:
(1) Il n'y a que deux types de structures de données dans JSON;
(2) il peut être imbriqué, comme les objets peuvent être imbriqués dans le tableau;
(3) N'oubliez pas: l'objet est représenté par {}, et le tableau est représenté par [];
3. Exemple de conversion JSON et XML
Tout XML mentionné ci-dessus peut être converti en package JSON;
1. XML simple
Format XML:
<ponse> <nom> xiazdong </name> <age> 20 </ge> </som>
Format JSON:
{"Name": "Xiazdong", "Age": 20}2. XML complexe
Format XML:
<Acction> <Title> Book </ Title> <Signaing> <Auteur Name = "Author-1" /> <Book Price = "11 $" /> </ Signing> <Signing> <Auteur Name = "Author-2" /> <Book Price = "22 $" /> </ Signing> </ction>
Format JSON:
"section":{ "title":"BOOK", "signing":[ { <span style="white-space:pre"> </span> "author": { "name":"author-1" }, "book": { "title":"book1", "price":"$11" } }, { "author": { "name":"author-2" }, "book": { "title":"book2", "Price": "22 $"}} <span style = "White-Space: pre"> </span>]}}Remarque: Les propriétés de XML sont également représentées par la carte de JSON;
4. Package JSON
Si nous voulons utiliser le package JSON, nous pouvons télécharger le code source du package JSON et ajouter ces codes au projet Eclipse et l'appeler;
Si vous souhaitez voir la documentation de l'API, vous pouvez voir: http://www.json.org/java/index.html
Les deux classes les plus couramment utilisées dans le package JSON sont JSONObject et JSONArray, qui représentent respectivement deux structures de données;
1. Instance de code JSONObject
Package com.xiazdong.json; Importer Weibo4j.org.json.jsonArray; Importer Weibo4j.org.json.jsonObject; Public Class Test {public static void main (String [] args) lève une exception {jsonObject jsonOBj = new JSONObject ("{'name': 'xiazdong', 'age': 20}"); String name = jsonObj.getString ("name"); int Age = JSONOBJ.GetInt ("Age"); System.out.println (nom + ":" + âge); }}2. Instance de code JSONArray
JSONArray array = new JSONArray (String Str); // convertit la chaîne en jsonArrayInt Length = array.length (); // retourne la longueur du tableau;
Package com.xiazdong.json; Importer Weibo4j.org.json.jsonArray; Importer Weibo4j.org.json.jsonObject; Test de classe publique {public static void main (String [] args) lève une exception {jsonArray JSONArray = new JSONArray ("[{'name': 'xiazdong', 'age': 20}, {'name': 'xzdong', 'Âge': 15}]"); for (int i = 0; i <jsonArray.length (); i ++) {String name = jsonArray.getjsonObject (i) .getString ("name"); int age = jsonArray.getjsonObject (i) .getInt ("âge"); System.out.println ("name =" + name); System.out.println ("Age =" + Age); }}} 3. Instances de code JSONObject et JSONArray imbriquées
Package com.xiazdong.json; Importer Weibo4j.org.json.jsonArray; Importer Weibo4j.org.json.jsonObject; Test de classe publique {public static void main (String [] args) lève l'exception {String str = "{'name': 'xiazdong', 'age': 20, 'book': ['book1', 'book2']"; JSONObject obj = new JSONObject (str); System.out.println (obj.getjsonArray ("Book"). GetString (0)); }}4. Exemple de code JSontringer
Jsonstringer peut être utilisé pour construire rapidement un texte de format JSON et le convertir en une chaîne, qui peut être écrite en fichier;
Jsonstringer est une sous-classe de JsonWriter;
JSonstringer est généralement construit via object (). Key (). Value (). Key (). Value (). EndObject ();
object () indique qu'un objet est démarré, c'est-à-dire en ajoutant {;
EndObject () indique qu'un objet est terminé, c'est-à-dire en ajoutant};
Array () indique qu'un tableau est démarré, c'est-à-dire en ajoutant un [;
EndArray () indique qu'un tableau est terminé, c'est-à-dire en ajoutant un];
key () signifie ajouter une clé;
Value () signifie ajouter une valeur;
Package com.xiazdong.json; Importer Weibo4j.org.json.jsonstringer; La classe publique JSONSINGRINGERDEMO {public static void Main (String [] args) lève l'exception {jsonstringer stringer = new JSontringer (); String str = stringer.object (). Key ("name"). Valeur ("xiazdong"). Key ("age"). Valeur (20) .endObject (). ToString (); System.out.println (STR); }} Écriture de format JSON complexe
Package com.xiazdong.json; Importer java.io.file; import java.io.fileReader; Importer Weibo4j.org.json.jsonArray; Importer Weibo4j.org.json.jsonObject; Importer Weibo4j.org.json.jsonstringer; Importer Weibo4j.org.json.jsonstringer; Importer Weibo4j.org.json.jsontkener; La classe publique JSONSINGRINGERDEMO {public static void main (String [] args) lève l'exception {jSontringer js = new JSontringer (); JsonObject obj2 = new JSONObject (); JSONObject obj3 = new JSONObject (); JsonObject obj4 = new JSONObject (); OBJ4.Put ("Title", "Book1"). Put ("Price", "11 $"); obj3.put ("livre", obj4); obj3.put ("auteur", new JSONObject (). put ("name", "auteur-1")); JsonObject obj5 = new JSONObject (); JSONObject obj6 = new JSONObject (); obj6.put ("titre", "book2"). put ("prix", "22 $"); obj5.put ("livre", obj6); obj5.put ("auteur", new jsonObject (). put ("name", "auteur-2")); JSONArray obj7 = new JSONArray (); obj7.put (obj3) .put (obj5); obj2.put ("titre", "livre"); obj2.put ("Signer", obj7); Js.Object (). Key ("Session"). Valeur (obj2) .endObject (); System.out.println (Js.ToString ()); Printwriter out = new printwriter (new FileOutputStream (1.Txt)); out.println (Js.ToString ()); }} Le code ci-dessus génère le format JSON suivant:
{"Section": {"Title": "Book", "Signing": [{"Author": {"Name": "Author-1"}, "Book": {"Title": "Book1", "Price": "11 $"}}, {"Author": {"Name": "Author-2"}, "Book": {"Title": "Book2", "Prix": "}" "" "" }}5.JSontOneker Code Exemple
JSontokeer est utilisé pour lire des fichiers au format JSON;
JsonObject obj = new jsonObject (new JSontokeer (java.io.reader)); Vous pouvez lire un jsonObject à partir d'un fichier;
JSONArray obj = new JSONArray (new JSONArray (java.io.reader)); Vous pouvez lire un jsonArray à partir d'un fichier;
{'name': 'xiazdong', 'book': ['book1', 'book2']} package com.xiazdong.json; Importer java.io.file; import java.io.fileReader; Importer Weibo4j.org.json.jsonObject; Importer Weibo4j.org.json.jSontokeer; classe publique Jsonstringerdemo {public static void main (String [] args) lève une exception {jsonObject obj = new JsonObject (new JSONObject (new JSONTOKER (new FileReader (nouveau fichier ("1.txt"))); System.out.println (obj.getjsonArray ("book"). Code de lecture au format JSON complexe:
{"Section": {"Title": "Book", "Signing": [{"Author": {"Name": "Author-1"}, "Book": {"Title": "Book1", "Price": "11 $"}}, {"Author": {"Name": "Author-2"}, "Book": {"Title": "Book2", "Prix": "}" "" "" }} Package com.xiazdong.json; Importer java.io.file; import java.io.fileReader; Importer Weibo4j.org.json.jsonObject; Importer Weibo4j.org.json.jSontokeer; classe publique jsonstringerdemo {public static void main (String [] args) lève une exception {jsonObject obj = new JSONObject (new JSONObject (new JSontokeer (nouveau fileader (nouveau fichier ("1.txt")))); System.out.println (obj.getjsonObject ("Section"). GetJSonArray ("Signing"). GetJsonObject (0) .getJsonObject ("Author"). GetString ("Name"));Résumer:
1 Dans Java, la chaîne de format JSON est mieux représentée en citations uniques;
2. Utilisez JSONObject + JSontOneker pour lire les objets de fichier de format JSON;
3. Utilisez Printwriter + JSONSTINGER pour écrire des fichiers JSON;
Remarque: Puisque je voulais à l'origine essayer d'écrire avec JsonWriter, mais cela n'a pas réussi; Je ne peux donc utiliser JSONSINGER + PRINTWRER pour écrire;
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.