【问题标题】:How to get a JSON in CasperJS?如何在 CasperJS 中获取 JSON?
【发布时间】:2017-02-02 18:40:41
【问题描述】:

我有一些参数 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');

【问题讨论】:

    标签: javascript json casperjs


    【解决方案1】:

    函数没有闭包,你评估。你可以在这里读到一些关于它的东西:http://phantomjs.org/api/webpage/method/evaluate.html

    这就是变量 name1、name2 和 name3 在您评估函数时未定义的原因。

    Phantom 2 在当前版本中存在以下错误 - evaluate 函数中的错误不会出现异常。在这种情况下,evaluate 只返回 null。

    因此,您在 evaluate 函数中遇到了一个错误,但一无所获。

    你可以试试下面的例子,它会打印出来

    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 = 'string1'、name2 = 'string2' 和 name3 = 'string3' 的情况如何。如何获取具有这些值的 json 文件?我尝试这样做,但我得到了空值..
    • @ZaurK 我已经更新了答案 - 在第一个示例中添加了将 JSON 保存到文件中。
    • 可能是我不明白的东西,但在第一个例子 name1': 1 中,它工作得很好,但我需要 'name1': name1,当 name1 是一个动态的值时它不等于 1。
    • 对不起)谢谢,我现在了解评估
    猜你喜欢
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    相关资源
    最近更新 更多