保存JSONObject

时间:2016-07-31 08:16:46

标签: javascript json file

这是什么类型的对象? enter image description here 我正在尝试制作模拟数据以测试应用程序,这就是我的假数据之一。 如何保存此模拟数据?

我只能想到使用JSON.stringify函数并复制结果以保存为字符串。显然,在我这样做之后,我将无法访问原始对象的属性。

enter image description here

有什么方法可以将此JSONObject写入文件并稍后访问其属性?

3 个答案:

答案 0 :(得分:0)

JSON.stringify()返回一个字符串。要创建一个可以再次访问属性的对象,您需要将该字符串传递给JSON.parse()

值得注意的是,如果您要保存的对象中包含任何功能,则不会保存。

答案 1 :(得分:0)

在您的代码obj中是一个javascript对象

您可以使用blob(docs)和HTML5下载API执行以下操作:

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";

您可以稍后使用和XMLHttpRequest GET请求加载该数据并访问其属性:

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);
 });

答案 2 :(得分:0)

使用本地存储可能。

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

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