English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Formato di scambio dati leggero JSON
Rispetto a XML, JSON ha una velocità di解析 più rapida e documenti più piccoli.
Formato JSON
{"proprietario:valore,proprietario:valore,...}
Il tipo di nome dell'attributo può essere string, number, boolean, null, oggetto, e il nome dell'attributo deve essere racchiuso tra virgolette doppie. Se il valore dell'attributo è una stringa, deve essere racchiuso tra virgolette doppie.
JSON rappresenta un array
Formato:[value,value,value], dove value può essere un tipo di dati base, un tipo di oggetto o un tipo di array
Tipo di array [ {"name":"yangjq","age":22}, {"name":"andreny","age":21} ];
Tipo di oggetto [ "name":"andreny" "hobby":["cantare","ballare","mangiare"} ]
Conversione
graph LR JSON stringa --> Oggetto JavaScript
1. Utilizzando la funzione nativa di JavaScript: eval(), tuttavia, questo metodo è pericoloso e deve essere utilizzato con cautela.
var str={"name":"yangjq","age":23}; var obj=eval("("+str+")"); alert(obj.name);
2. Utilizzando il metodo parse() dell'oggetto nativo JSON, se questo oggetto non è valido, significa che la versione del tuo browser è troppo vecchia!!!
var str={"name":"andreny","age":22}; var obj=JSON.parse(str); alert(obj.name);
3. Utilizzare i metodi aggiunti alla stringa da file JSON.js.
var str={"name":"逗比的二哈","age":9}; var obj=str.parseJSON(); alert(obj.name);
Convertire un oggetto JSON in una stringa JSON
graph LR Oggetto JSON --> Stringa JSON
Utilizzando l'API ufficiale JSON fornita da JSON: JSONObject, JSONArray forniscono metodi
//Primo metodo Emp emp=new Emp("1","andreny","man"); JSONObject obj=JSONObject.fromObject(emp); String jsonStr=obj.toString(); //Secondo metodo var obj={"name":"yangjq","age":23}; var str1=obj.toJSONString(); //Terzo metodo var str2=obj.JSON.stringify();
Problemi di cache coinvolti nell'invio delle richieste AJAX
==Nota==: Quando il browser IE invia una richiesta, controlla prima se è stato visitato l'indirizzo. Se è stato visitato, il browser non invierà la richiesta.
La gestione della cache da parte dei diversi browser
Browser Chrome continua a inviare la richiesta
Browser Firefox continua a inviare la richiesta
Browser IE non invia la richiesta
Come prevenire che il browser non invii la richiesta a causa della cache?
Aggiungere un numero casuale alla fine dell'indirizzo della richiesta
xhr.open('get','getNumber.do?+Math.random(),true);
Inviare una richiesta POST
Domande su sincronizzazione
Dopo aver inviato la richiesta di sincronizzazione, il browser deve aspettare che la risposta del server arrivi prima di continuare a operare nella pagina. Quando l'AJAX invia una richiesta di sincronizzazione, il browser blocca la pagina corrente.
测试代码
package yangjq.test; import java.util.ArrayList; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import yangjq.entity.Friend; public class JSONtest { public static void main(String[] args) { System.out.println("---------------"); test1(); test2(); test3(); test4(); } // java对象转换为json字符串 public static void test1(){ Friend f=new Friend(); f.setName("andreny"); f.setAge(23); JSONObject obj=JSONObject.fromObject(f); System.out.println(obj.toString()); } // JSON集合转换为JSON字符串 public static void test2(){ List<Friend> fs=new ArrayList<Friend>(); for (int i=0;i<10;i++){ Friend f=new Friend(); f.setName("yangjq"+i); f.setAge(12+i); fs.add(f); } JSONArray ja=JSONArray.fromObject(fs); System.out.println("-----JSON集合转换为JSON字符串------\n"+fs); System.out.println(ja.toString()); } // JSON字符串转换为java对象 public static void test3(){ String jsonStr="{\"name\":\"andreny\",\"age\":22}"; JSONObject obj=JSONObject.fromObject(jsonStr); Friend friend=(Friend) JSONObject.toBean(obj,Friend.class); System.out.println("-------JSON字符串转换为java对象------\n"+obj.toString()); System.out.println(friend); } // JSON字符串转换为java集合 public static void test4(){ String jsonStr="[{\"name\":\"yangjq\",\"age\":22}," + "{\"name\":\"andreny\",\"age\":23}]"; JSONArray obj=JSONArray.fromObject(jsonStr); List<Amico> amici=(List<Amico>) JSONArray.toCollection(obj,Amico.class); System.out.println("--------Conversione di una stringa JSON in un insieme java---------"); for (Amico f:amici){ System.out.println(f); } } }
Risultato dell'esecuzione:
--------------- {"age":23,"name":"andreny"} -----Conversione di un insieme JSON in una stringa JSON------ [Amico [nome=yangjq0, età=12], Amico [nome=yangjq1, età=13], Amico [nome=yangjq2, età=14], Amico [nome=yangjq3, età=15], Amico [nome=yangjq4, età=16], Amico [nome=yangjq5, età=17], Amico [nome=yangjq6, età=18], Amico [nome=yangjq7, età=19], Amico [nome=yangjq8, età=20], Amico [nome=yangjq9, età=21]] [{"age":12,"name":"yangjq0"},{"age":13,"name":"yangjq1"},{"age":14,"name":"yangjq2"},{"age":15,"name":"yangjq3"},{"age":16,"name":"yangjq4"},{"age":17,"name":"yangjq5"},{"age":18,"name":"yangjq6"},{"age":19,"name":"yangjq7"},{"age":20,"name":"yangjq8"},{"age":21,"name":"yangjq9"}] -------Conversione di stringhe JSON in oggetto Java------ {"name":"andreny","age":22} Amico [nome=andreny, età=22] --------Conversione di stringhe JSON in collection Java--------- Amico [nome=yangjq, età=22] Amico [nome=andreny, età=23]
Sommario
Questo è tutto il contenuto dell'articolo sul discorso di scambio di dati JSON, problemi di cache e sincronizzazione, spero sia utile a tutti. Chi è interessato può continuare a consultare altre sezioni correlate del nostro sito. Siamo aperti a suggerimenti e commenti. Grazie per il supporto degli utenti!
Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, il copyright è dell'autore originale, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato elaborato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, invia un'e-mail a notice#oldtoolbag.com (sostituisci # con @ durante l'invio dell'e-mail) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.