Es gibt keine Schließung für die Funktion ist, Sie zu bewerten. Sie können hier etwas darüber lesen: http://phantomjs.org/api/webpage/method/evaluate.html
Deshalb sind die Variablen name1, name2 und name3 sind nicht definiert, wenn Sie die Funktion zu bewerten.
Phantom 2 hat den folgenden Fehler in aktuellen Releases - ein Fehler in einer Funktion ist bewerten steigt keine Ausnahme. In diesem Fall gibt null aus.
Also, Sie haben einen Fehler in Ihrer Funktion bewerten und nichts bekommen.
Sie können das folgende Beispiel versuchen, die druckt
jsonStr: { "name1": 1, "name2": 2 "name3": 3}
var casper = require('casper').create();
var fs = require('fs');
casper.start('http://casperjs.org/', function() {});
casper.then(function() {
var jsonStr = this.evaluate(function() {
var outJson = {'name1': 1, 'name2': 2, 'name3': 3};
return JSON.stringify(outJson);
});
this.echo('jsonStr: ' + jsonStr);
fs.write('myFile.json', jsonStr, 'w');
});
casper.run();
und das folgende Beispiel, das
jsonStr druckt: null
Danke, was ist mit Groß- und Kleinschreibung, wenn name1 = 'string1', name2 = 'string2' und name3 = 'string3'. Wie bekomme ich eine JSON-Datei mit diesen Werten? Ich versuche es zu tun, aber ich habe leere Werte .. – ZaurK
@ZaurK Ich habe die Antwort aktualisiert - hinzugefügt JSON Speichern in eine Datei im 1. Beispiel. –
Vielleicht verstehe ich etwas nicht, aber im 1. Beispiel name1 ': 1, es funktioniert gut, aber ich brauche' name1 ': name1, wenn name1 ein Wert ist, der dinamically bekommt und es ist nicht gleich 1. – ZaurK