保存JSONObject
问题描述:
这是什么样的对象? 我正在尝试制作模拟数据以测试应用程序,这就是我的假数据之一。 如何保存这个模拟数据?保存JSONObject
我只能想到使用JSON.stringify
函数并将结果复制保存为字符串。显然,在我这样做后,我将无法访问原始对象的属性。
有没有我可以写这篇文章的JSONObject到一个文件中,并已获得其属性后的任何方式?
答
JSON.stringify()
返回一个字符串。要创建一个对象,您可以再次访问属性,您需要通过JSON.parse()
传递该字符串。
还值得注意的是,如果你保存的对象有任何功能,它们将会保存而不是。
答
在你的代码obj
是一个JavaScript对象
您可以使用BLOB(https://developer.mozilla.org/en-US/docs/Web/API/Blob)和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);
});
答
使用本地存储也许。
localStorage.setItem("MYMockData", JSON.stringify(fakeData));
var fakeDataRetrived = JSON.parse(localStorage.getItem("MYMockData"));
这完全是我想要做的。我试图保存一个有函数的对象,并且我想稍后使用这些函数..这是不可行的吗? – Yes
如果对象中有函数,那么希望它有一个可以调用的构造函数来创建更多实例。检查https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor – solarshado