2016-07-31 13 views
1

Welche Art von Objekt ist das? enter image description here Ich versuche, Mock-Daten zu erstellen, um eine Anwendung zu testen, und so sieht eine meiner gefälschten Daten aus. Wie kann ich diese Scheindaten speichern?Speichern JSONObject

Ich konnte nur daran denken, die JSON.stringify Funktion zu verwenden und das Ergebnis zu kopieren, um als eine Zeichenkette zu speichern. Offensichtlich hätte ich nach diesem Schritt keinen Zugriff auf das Attribut des ursprünglichen Objekts.

enter image description here

Gibt es Möglichkeiten, wie ich diese JSONObject in eine Datei schreiben und den späteren Zugriff auf seine Eigenschaften haben ??

Antwort

0

JSON.stringify() gibt eine Zeichenfolge zurück. Um ein Objekt zu erstellen, auf das Sie wieder zugreifen können, müssen Sie diese Zeichenfolge durch JSON.parse() übergeben.

Es ist auch erwähnenswert, dass, wenn das Objekt, das Sie speichern, Funktionen darin hat, sie nicht gespeichert werden.

+0

Das ist GENAU was ich versuche zu tun. Ich versuche, ein Objekt zu speichern, das Funktionen enthält, und ich möchte diese Funktionen später verwenden. Ist das überhaupt nicht möglich? – Yes

+0

Wenn das Objekt Funktionen enthält, hat es hoffentlich einen Konstruktor, den Sie aufrufen können, um weitere Instanzen zu erstellen. Überprüfen Sie https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor – solarshado

0

In Ihrem Code obj ist ein Javascript-Objekt

können Sie verwenden Blob (https://developer.mozilla.org/en-US/docs/Web/API/Blob) und HTML5-Download-API die erforderliche zu tun, wie:

var json = JSON.stringify(obj); 
var blob = new Blob([json], {type: "application/json"}); 
var url = URL.createObjectURL(blob); 

var a = document.createElement('a'); 
a.download = "mydata.json"; 
a.href  = url; 
a.textContent = "Download mydata.json"; 

Sie, dass die Daten geladen werden können und Zugriff es Eigenschaften, die später und XMLHttpRequest GET Anfrage als:

function loadJSON(callback) { 

    var getobj = new XMLHttpRequest(); 
    getobj.overrideMimeType("application/json"); 
    getobj.open('GET', 'mydata.json', true); // Replace 'mydata' with the path to your file 
    getobj.onreadystatechange = function() { 
      if (getobj.readyState == 4 && getobj.status == "200") { 
       // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode 
      callback(getobj.responseText); 
      } 
    }; 
    getobj.send(null); 
} 

loadJSON(function(response) { 
    // Parse JSON string into object 
    var savedData = JSON.parse(response); 
}); 
+0

Ich bin sehr verwirrt – Yes

+0

Verwirrt über was? –

+0

alles ... ich verstehe es überhaupt nicht – Yes

0

Verwenden lokalen Speicher vielleicht.

localStorage.setItem("MYMockData", JSON.stringify(fakeData)); 

    var fakeDataRetrived = JSON.parse(localStorage.getItem("MYMockData"));