0
いくつかのテストケースを実行するためにOracle JDK 1.8.0_65とnashornを使用していますが、空のJSON配列を解析するときに非常に奇妙な動作が検出されました。空の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)
I'tsはnashorn JSONパーサのバグのように見えます。返された配列は実際には空の配列ではありませんが、最初の要素を押す前のようです。最初のプッシュ後に表示される隠された "0"があります。
この現象に関するバグレポートは見つかりませんでした。 JSON.parseを間違った方法で使用していますか?
ありがとうございました。 J