这是什么类型的对象? 我正在尝试制作模拟数据以测试应用程序,这就是我的假数据之一。 如何保存此模拟数据?
我只能想到使用JSON.stringify
函数并复制结果以保存为字符串。显然,在我这样做之后,我将无法访问原始对象的属性。
有什么方法可以将此JSONObject写入文件并稍后访问其属性?
答案 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"));