Javascript 如何过滤从npm许可证检查器包返回的JSON?

Javascript 如何过滤从npm许可证检查器包返回的JSON?,javascript,json,Javascript,Json,我正在用这个库进行实验,以过滤和添加某些许可证类型。在自述文件中,有一个示例说明了如何使用一些意外字符查询JSON数据: var checker = require('license-checker'); checker.init({ start: '/path/to/start/looking' }, function(json, err) { if (err) { //Handle error } else { //The sorte

我正在用这个库进行实验,以过滤和添加某些许可证类型。在自述文件中,有一个示例说明了如何使用一些意外字符查询JSON数据:

var checker = require('license-checker');

checker.init({
    start: '/path/to/start/looking'
}, function(json, err) {
    if (err) {
        //Handle error
    } else {
        //The sorted json data
    }
});
但是,当我查看JSON的格式时,我不确定如何将其作为评估许可证的一部分。以下是该结构的一个示例:

 { 'ansi-styles@1.1.0': 
     { licenses: 'MIT',
       repository: 'https://github.com/sindresorhus/ansi-styles' },
    'ansi-styles@2.1.0': 
     { licenses: 'MIT',
       repository: 'git+https://github.com/chalk/ansi-styles',
       licenseFile: '...' },
    'ansi-wrap@0.1.0': 
     { licenses: 'MIT',
       repository: 'git+https://github.com/jonschlinkert/ansi-wrap',
       licenseFile: '...' },
    ...

如何检查传递到checker函数的json变量,以将licenses属性与许可证白名单数组进行比较?

对象开头的转义序列
\u001b[34m
看起来很像ANSI转义序列,用于告诉终端以彩色呈现内容。例如,请参见:。当我尝试时,您的代码正确地转储了许可证JSON,因此:

var checker = require('license-checker');

checker.init({ start: '.' }, function(json, err) {
    if (err) {
        //Handle error
    } else {
        console.log (JSON.stringify (json))
    }
});
那么,您将如何处理生成的JSON呢?
Object。任何对象上的keys
都会将对象中(必须)不同的键提取到一个数组中。然后,数组上的一个简单筛选表达式将允许您捕获您感兴趣的任何内容。例如,如果您想保留所有MIT许可包,您可以执行以下操作:

var keys = Object.keys (json)
var okPackages = keys.filter (function (e) {
        return json.hasOwnProperty (e) && (json[e].licenses === "MIT")
    });

感谢Ram-我使用gutil捕获了输出,您的观点是输出颜色序列。我仍然不确定如何适当地迭代该对象,尽管现在我有了它。我已经相应地更新了我的JSON片段。我希望指出如何过滤的片段有所帮助;如果您有更多问题,请告诉我。