1. Introducción a JSON
JSON (notación de objeto JavaScript), similar a XML, es un formato de intercambio de datos. Por ejemplo, si Java genera datos en JavaScript, además de usar XML, también puede usar JSON;
La ventaja de JSON sobre XML es que es muy simple de expresar; Sitio web oficial: http://www.json.org/
JSON es X en Ajax (es decir, puede reemplazar XML); ------ Del fundador de JSON;
Nota: JSON no es un formato de documento, no hay documentos *.json. En general, los documentos de formato JSON se encuentran en TXT, y XML puede ser un estándar;
Editor en línea de JSON: http://tools.vevb.com/tools/json/json_editor.htm
2. Estructura de datos JSON
JSON tiene dos estructuras de datos:
(1) mapa, también conocido como objeto; {......}
(2) matriz; [......]
Es decir, todos los objetos JSON deben representarse en estas formas;
1.map
En pocas palabras, es un mapa en Java. El par de valores de nombre se da, y el nombre y el valor están separados por ":" y los dos mapas están separados por "," y la representación general es la siguiente:
{'key1': 'value1', 'key2': 'value2'}
La siguiente es la imagen oficial del sitio web:
2. Array
Es una matriz en el sentido ordinario, con la forma general de la siguiente manera:
['arr1', 'arr2', 'arr3'];
La siguiente es la imagen oficial del sitio web:
El valor en la figura puede ser:
Resumir:
(1) Solo hay dos tipos de estructuras de datos en JSON;
(2) puede estar anidado, como los objetos se pueden anidar en la matriz;
(3) Recuerde: el objeto está representado por {}, y la matriz está representada por [];
3. Ejemplo de conversión JSON y XML
Cualquier XML mencionado anteriormente se puede convertir en el paquete JSON;
1. XML simple
Formato XML:
<Oll> <name> xiazdong </name> <ge> 20 </age> </pero>
Formato JSON:
{"nombre": "xiazdong", "edad": 20}2. XML complejo
Formato XML:
<section> <title> book </title> <signing> <autor name = "autor-1"/> <book precio = "$ 11"/> </signing> <signing> <autor name = "autor-2"/> <book precio = "$ 22"/> </sciring> </section>
Formato JSON:
"Sección": {"Título": "Libro", "Firma": [{<Span Style = "White-Space: Pre"> </span> "Autor": {"Nombre": "Autor-1"}, "Libro": {"Título": "Libro1", "precio": "$ 11"}}}, {"Autor": {"Nombre": "Nombre" "Price": "$ 22"}} <span style = "White-Space: pre"> </span>]}}Nota: Las propiedades en XML también están representadas por el mapa de JSON;
4. Paquete JSON
Si queremos usar el paquete JSON, podemos descargar el código fuente del paquete JSON y agregar estos códigos al proyecto Eclipse y llamarlo;
Si desea ver la documentación de API, puede ver: http://www.json.org/java/index.html
Las dos clases más utilizadas en el paquete JSON son Jsonobject y Jsonarray, que representan dos estructuras de datos respectivamente;
1. Instancia del código JSONObject
paquete com.xiazdong.json; importe weibo4j.org.json.jsonarray; import weibo4j.org.json.jsonobject; Public Class Test {public static void main (string [] args) lanza la excepción {jsonObject jsonObj = new JsonObject ("{'name': 'xiazdong', 'edad': 20}"); Name de cadena = jsonobj.getString ("nombre"); int Age = jsonobj.getInt ("edad"); System.out.println (nombre+":"+edad); }}2. Instancia del código JSONArray
JSONArray Array = New JSonArray (String STR); // Convertir la cadena en jsonarrayint longitud = array.length (); // devuelve la longitud de la matriz;
paquete com.xiazdong.json; importe weibo4j.org.json.jsonarray; import weibo4j.org.json.jsonobject; Public Class Test {public static void main (string [] args) lanza la excepción {jSonArray jSonArray = new JsonArray ("[{'name': 'xiazdong', 'edad': 20}, {'name': 'xzdong', 'edad': 15}]"); for (int i = 0; i <jsonarray.length (); i ++) {string name = jSonArray.getJsonObject (i) .getString ("nombre"); int Age = JSONArray.getJsonObject (i) .getInt ("edad"); System.out.println ("name ="+name); System.out.println ("Age ="+Age); }}} 3. Instancias de código JSONObject y JSONArray
paquete com.xiazdong.json; importe weibo4j.org.json.jsonarray; import weibo4j.org.json.jsonobject; Public Class Test {public static void main (String [] args) lanza la excepción {String str = "{'name': 'xiazdong', 'edad': 20, 'book': ['book', 'book2']"; JSONObject obj = new JsonObject (STR); System.out.println (obj.getjsonArray ("libro"). GetString (0)); }}4. Ejemplo de código JSonstringer
JSonstringer se puede usar para construir rápidamente un texto de formato JSON y convertirlo en una cadena, que se puede escribir en un archivo;
JSonstringer es una subclase de JsonWriter;
JSonstringer generalmente se construye a través de Object (). Key (). Value (). Key (). Value (). EndoBject ();
objeto () indica que se inicia un objeto, es decir, agregar {;
EndoBject () indica que un objeto termina, es decir, agregando};
Array () indica que se inicia una matriz, es decir, agregar un [;
EndoRray () indica que una matriz finaliza, es decir, agregar una];
Key () significa agregar una clave;
valor () significa agregar un valor;
paquete com.xiazdong.json; import weibo4j.org.json.jsonstringer; La clase pública JSonstringerDemo {public static void main (string [] args) lanza la excepción {JSonstringer Stringer = new JSonstringer (); String str = stringer.object (). Key ("Nombre"). Valor ("Xiazdong"). Key ("Age"). Value (20) .EdObject (). ToString (); System.out.println (str); }} Escritura de formato JSON complejo
paquete com.xiazdong.json; import java.io.file; import java.io.filreader; importe weibo4j.org.json.jsonarray; import weibo4j.org.json.jsonobject; import weibo4j.org.json.jsonstringer; import weibo4j.org.json.jsonstringer; import weibo4j.org.json.jsontkener; La clase pública JSonstringerDemo {public static void main (string [] args) lanza la excepción {jsonstringer js = new JSonstringer (); JsonObject obj2 = new JsonObject (); JsonObject obj3 = new JsonObject (); JsonObject obj4 = new JsonObject (); obj4.put ("Título", "Book1"). PUT ("Price", "$ 11"); obj3.put ("libro", obj4); obj3.put ("autor", new JsonObject (). Put ("Nombre", "Autor-1")); JsonObject obj5 = new JsonObject (); JsonObject obj6 = new JsonObject (); obj6.put ("Título", "Book2"). PUT ("Price", "$ 22"); obj5.put ("libro", obj6); obj5.put ("autor", new JsonObject (). Put ("Nombre", "Autor-2")); JSONArray obj7 = new JsonArray (); obj7.put (obj3) .put (obj5); obj2.put ("título", "libro"); obj2.put ("firmar", obj7); js.Object (). Key ("Sesión"). Valor (obj2) .EdObject (); System.out.println (js.ToString ()); PrintWriter out = new PrintWriter (nuevo FileOutputStream (1.TXT)); out.println (js.ToString ()); }} El código anterior genera el siguiente formato JSON:
{"sección": {"título": "libro", "firmar": [{"autor": {"name": "autor-1"}, "libro": {"título": "book", "precio": "$ 11"}, {"autor": {"nombre": "autor-2"}, "book": {"Título": "Book2", "precio": "$ 22" "$ 22"}]}] }}5. Ejemplo de código de JSONTOWER
JSONTOKINER se usa para leer archivos en formato JSON;
JSONObject obj = new JsonObject (new JSonTokener (java.io.reader)); Puede leer un JSONObject de un archivo;
JSONArray obj = new JsonArray (new JsonArray (java.io.reader)); Puede leer un JSONArray de un archivo;
{'name': 'xiazdong', 'book': ['book', 'book2']} paquete com.xiazdong.json; import java.io.file; import java.io.filreader; import weibo4j.org.json.jsonobject; importe weibo4j.org.json.jsonsonkoken; clase pública JSonstringerDemo {public static void main (string [] args) lanza la excepción {jsonObject obj = new JsonObject (new JsonObject (new JSonTokener (new FileReader (nuevo archivo ("1.txt"))); System.out.println (obj.getjsonarray ("libro"). Código de lectura en formato JSON complejo:
{"sección": {"título": "libro", "firmar": [{"autor": {"name": "autor-1"}, "libro": {"título": "book", "precio": "$ 11"}, {"autor": {"nombre": "autor-2"}, "book": {"Título": "Book2", "precio": "$ 22" "$ 22"}]}] }} paquete com.xiazdong.json; import java.io.file; import java.io.filreader; import weibo4j.org.json.jsonobject; importe weibo4j.org.json.jsonsonkoken; clase pública JSonstringerDemo {public static void main (String [] args) lanza excepción {jsonObject obj = new JsonObject (new JsonObject (new JSonTokener (new FileReader (nuevo archivo ("1.txt")))); System.out.println (obj.getjsonObject ("sección"). GetJsonArray ("firmar").Resumir:
1 En Java, la cadena de formato JSON se representa mejor en citas individuales;
2. Use JSONObject+JSonTokener para leer objetos de archivo JSON;
3. Use PrintWriter+JSonstringer para escribir archivos JSON;
Nota: Dado que originalmente quería intentar escribir con JsonWriter, pero no tuvo éxito; Entonces solo puedo usar JSonstringer+PrintWriter para escribir;
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.