使用 nashorn 解析空 json 数组时出错

Error parsing empty json array with nashorn

我正在使用 Oracle JDK 1.8.0_65 和 nashorn 来 运行 一些测试用例,我在解析空 JSON 数组时发现了一个非常奇怪的行为.

这是我在 nashorn 中 运行 的代码:

var testCase = {
    start:function() {
        // Case 1: a initialized from JavaScript Array
        var a = [];
        this.log.debug("a before:" + JSON.stringify(a) + " (length:" + a.length + ")");
        a.push(15);
        this.log.debug("a after:" + JSON.stringify(a) + " (length:" + a.length + ")");

        // Case 2: b initialized parsing a JSON Array
        var b = JSON.parse("[]"); 
        this.log.debug("b before:" + JSON.stringify(b) + " (length:" + b.length + ")");
        b.push(15);
        this.log.debug("b after:" + JSON.stringify(b) + " (length:" + b.length + ")");
    }
};

输出为:

a before:[] (length:0)
a after:[15] (length:1)
b before:[] (length:0)
b after:[0,15] (length:2)

我看起来像是 nashorn JSON 解析器中的错误。返回的数组并不是真正的空数组,但在压入第一个元素之前看起来像这样。第一次推送后出现隐藏的“0”

找不到关于此行为的任何错误报告。 我是不是用错了 JSON.parse?

谢谢。 J

您的用法是正确的。这似乎是一个错误,而且似乎已被修复。我刚试过 1.8.0_112。它按预期工作。