J'écris un wrapper localStorage pour faciliter l'insertion et la récupération de données quand il en a besoin pour faire des requêtes plus robustes.Vérification des types d'objets dans mon script?
Mon script est ici: https://github.com/OscarGodson/storageLocker
Un utilisateur de mon script m'a demandé comment il pouvait sauver une date et je lui ai dit la procédure appropriée (sauf new Date().getTime()
à la JSON et de faire revivre avec quelque chose comme new Date(json.time)
mais il essayait de faire hisStorage.save({'the_date':new Date()})
, mais à sa grande surprise quand il est allé chercher les données il serait malformé
Donc, ma question est, comment puis-je attraper des insertions comme ceci et d'autres objets (peut-être des événements?), convertir eux pour les utilisateurs d'être stockés dans le JSON et également récupérés correctement? Je l'ai travaillé toute la journée et je ne peux pas comprendre comment vérifier pour certains types d'objets et de convertir en conséquence via un certain cas de commutateur.
Enregistrer et récupérer une partie de mon script ressemble à ceci:
Sauvegarde des données:
storageLocker.prototype.save = function(value){
var json = JSON.parse(localStorage.getItem(this.catalog));
if(json == null){json = {};}
for(var key in value){
if(value.hasOwnProperty(key)){
json[key] = value[key];
}
}
localStorage.setItem(this.catalog,JSON.stringify(json));
return this;
}
Obtenir des données:
storageLocker.prototype.get = function(value){
json = JSON.parse(localStorage.getItem(this.catalog));
if(json == null){json = {};}
if(value){
if(typeof json[value] !== 'undefined'){
return json[value];
}
else{
//Makes it so you can check with myStorage.get('thisWontExist').length
//and it will return 0 and typeof will return object.
return new Object('');
}
}
else{
return json;
}
};
http://stackoverflow.com/questions/332422/how-do-i-get-the-name-of-an-objects-type-in-javascript – Stephen