2016-12-20 9 views
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

答えて

0

使用方法は正しいです。これはバグのようで、修正されているようです。私はちょうど1.8.0_112を試しました。それは期待どおりに動作します。