Permettez-moi de préface avec l'admission que je suis une programmation complète et javascript noob et ce fait est la source de mes problèmes. J'essaie de remplir un grand nombre d'objets personnalisés à partir d'un fichier texte que j'ai enregistré avec json.stringify. Quand je prends le contenu du fichier et JSON.parse (les), je reçois l'erreur suivante:JSON Erreur lors de l'analyse "... n'a pas de méthode" remplacer ""
var backSlashRemoved = text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'
^
TypeError: Object (contents of file) has no method 'replace'
Le code qui provoque cette erreur:
fs.readFile('/savedcustomobjectarray', function (err, data) {
var customobjectarray = json.parse(data);
});
Je devine que je vais à ce sujet tout faux. J'ai vu des gens mentionner des sérialiseurs pour ce genre de choses, mais je voulais vérifier si c'était ce dont j'avais besoin (et peut-être obtenir une direction pour les utiliser dans ce contexte). Il semble que la sortie stringify soit bonne, donc je ne sais pas pourquoi JSON ne peut pas tout simplement remettre humpty dumpty ensemble. Toute aide serait grandement appréciée.
EDIT: La ligne text.replace se trouve dans /vendor/commonjs-utils/lib/json-ext.js, pas mon code. J'ai supposé que cela faisait partie de JSON. Peut-être que je me trompe? Existe-t-il une manière différente d'analyser mon tableau d'objets via JSON?
'.replace' ne peut être appelé que sur une chaîne. Vérifiez si le texte est une chaîne ou un autre objet – JohnP
Qu'est-ce que vous essayez exactement de faire avec votre regex? –
@JohnP Je ne sais pas comment appliquer ce que vous avez dit. Le texte du fichier est le fichier JSON stringifié, et le fichier text.replace ne se trouve pas dans mon code mais provient plutôt du code json.parse (data). – clixby