如何在 CasperJS 中获得 JSON?
How to get a JSON in CasperJS?
我有一些参数 name1、name2、name3。如何获得包含这些参数的 JSON 文件?我尝试这样做,但我什么也没得到:
var jsonStr = this.evaluate(function(){
var outjson = {};
var outjson = {'name1': name1, 'name2': name2, 'name3': name3};
return JSON.stringify(outjson);
});
fs.write('myFile.json', jsonStr, 'w');
函数没有闭包,你求值。您可以在这里阅读相关内容:http://phantomjs.org/api/webpage/method/evaluate.html
这就是当您评估函数时未定义变量 name1、name2 和 name3 的原因。
Phantom 2 在当前版本中存在以下错误 - evaluate 函数中的错误无一例外。在这种情况下,evaluate 只是 returns null.
所以,你的函数在评估时出错,但什么也没得到。
您可以试试下面的例子,它打印
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();
和下面的示例,它打印
jsonStr: null
var casper = require('casper').create();
casper.start('http://casperjs.org/', function() {});
casper.then(function() {
var jsonStr = this.evaluate(function() {
var outJson = {'name1': name1, 'name2': name2, 'name3': name3};
return JSON.stringify(outJson);
});
this.echo('jsonStr: ' + jsonStr);
});
casper.run();
我有一些参数 name1、name2、name3。如何获得包含这些参数的 JSON 文件?我尝试这样做,但我什么也没得到:
var jsonStr = this.evaluate(function(){
var outjson = {};
var outjson = {'name1': name1, 'name2': name2, 'name3': name3};
return JSON.stringify(outjson);
});
fs.write('myFile.json', jsonStr, 'w');
函数没有闭包,你求值。您可以在这里阅读相关内容:http://phantomjs.org/api/webpage/method/evaluate.html
这就是当您评估函数时未定义变量 name1、name2 和 name3 的原因。
Phantom 2 在当前版本中存在以下错误 - evaluate 函数中的错误无一例外。在这种情况下,evaluate 只是 returns null.
所以,你的函数在评估时出错,但什么也没得到。
您可以试试下面的例子,它打印
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();
和下面的示例,它打印
jsonStr: null
var casper = require('casper').create();
casper.start('http://casperjs.org/', function() {});
casper.then(function() {
var jsonStr = this.evaluate(function() {
var outJson = {'name1': name1, 'name2': name2, 'name3': name3};
return JSON.stringify(outJson);
});
this.echo('jsonStr: ' + jsonStr);
});
casper.run();