我是CasperJS和laravel的新手。我需要一个帮助,我想从一个函数向CasperJS发送一个关联数组(该数组中的所有内容),目前我正在使用JSON_encode对其进行编码,因为CasperJS脚本没有采用数组。以下代码对数组进行编码并作为一个字符串发送。另一方面,我在casperJS脚本中获取字符串,无法解码JSON。 json的格式在到达casperJS脚本时发生了变化。
$array = array
(
[1] => http://www.xxxx.com,
[2] => http://www.yyyy.com,
[3] => http://www.zzzz.com
);
$data_fetch=json_encode($array);
$casperjs = new CasperJS;
$result = $casperjs->execute($this->script2,$data_fetch);
print_r($data_fetch);
在对数组进行编码后输出
{" 1":" HTTP://www.xxxx.com"," 2":" HTTP://www.yyyy .COM"" 3":" HTTP://www.zzzz.com"}
CasperJS脚本
var system = require('system');
var casper = require('casper').create({
verbose: true,
logLevel: 'error',
pageSettings: {
loadImages: false,
loadPlugins: false
}
});
var data = system.args[4];
casper.start(function() {
var decode=json.stringify(data);
});
casper.run();
当您检查数据中的输入时使用console.log的变量是
{1:HTTP://www.xxxx.com,2:HTTP://www.yyyy.com,3:HTTP://www.zzzz.com}
与json.encode不同,它省略了双引号,因为格式不同,我无法解码内容。
任何人都可以帮助为什么这样做?任何解决方案? OR是否有任何其他更好的方法将数组传递给casper并将结果作为数组返回。