2017-02-02 28 views
0

我有一些參數name1,name2,name3。我怎樣才能得到一個包含這些參數的JSON文件?我嘗試這樣做,但我得到什麼:如何在CasperJS中獲得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'); 

回答

0

沒有關閉的功能,你評估。你可以在這裏閱讀一些關於它的內容:http://phantomjs.org/api/webpage/method/evaluate.html

這就是爲什麼變量name1,name2和name3是undefined,當你評估函數。

幻影2在當前版本中有以下錯誤 - 函數中的錯誤是評估也不例外。在這種情況下,評估只需返回

所以,你有一個錯誤,你的功能是評估並得到什麼。

可以嘗試下面的例子中,打印

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:空

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(); 
+0

謝謝,當name1 ='string1',name2 ='string2'和name3 ='string3'時,情況如何。如何獲得這些值的json文件?我試着去做,但我得到了空值.. – ZaurK

+0

@ZaurK我已經更新了答案 - 在第一個示例中添加了將JSON保存到文件。 –

+0

可能是我不明白的東西,但在第一個例子name1':1,它是行之有效的,但我需要'name1':name1,當name1是一個值得到dinamically,它不等於1 – ZaurK