Jag kommer inte att ge detaljerad förklaring av användningen av funktionen eval () här. En JSON fil är en textfil vars innehåll är en JavaScript objekt bokstavlig. Innehållet börjar med den öppna klammerparentes {och slutar med nära klammerparentes,}. Här är ett enkelt exempel på en JSON-fil (allt innehåll): {property1: "ett objekt", myArray = ["punkt ett", "punkt två", "punkt tre"], myFn: ny funktion ("x" "y", "var z = x + y; tillbaka z * z;")} Allt vad du skriver inuti klammerparenteserna bör ske i enlighet med syntaxen för innehållet i ett objekt bokstavlig.
Ajax och JSON fil att ladda ner en JSON fil genom Ajax, vad du behöver göra är att sätta namnet på filen i slutet av webbadressen till i Ajax invända metoden open (). Ungefär så här: myAjax.open ("GET", "https://www.mywebsite.com/xxx.json", true); där xxx.json är namnet på filen. Observera att filen har tillägget, json. Efter en lyckad nedladdning, Ajax objektegenskap som skulle hålla innehållet i filen är, response. När du har din webbadress som visas ovan, kommer innehållet i filen vara värdet av fastigheten response i Ajax objektet.
Så, om namnet på din Ajax objekt var, myAjax, sedan att få tillgång till värdet av filen response egendom, skriver du: myAjax.responseText Notera punkten i mellan, myAjax och response. Målet är att få innehållet i JSON-filen som en användbar JavaScript-objekt. Värdet på response är inte en användbar (körbar) JavaScript-objekt; det är en sträng. Det finns två steg för att göra det ett JavaScript-objekt. Först måste du bifoga uttrycket myAjax.responseText inom parentes och som en sträng.
Nästa använder du den översta nivån JavaScript eval () för att omvandla den till en JavaScript körbar kod (objektlitteral). För att uppnå detta hölje, gör du så här: Mystring = "(" + myAjax.responseText + ")"; Detta ger dig strängen "(myAjax.responseText)". Om vi nu passera denna sträng som argument i funktionen