3

JSON.parse('[123]')が整数を返す理由がわかりません123。配列を返すべきではありません[123]か?

これがフィドルです。

の後に単一の整数の配列を取得するにはどうすればよいJSON.parse()ですか?

4

2 に答える 2

10

これ配列です。印刷される場合のみ、括弧は印刷されません。

これを 2 つの項目で見てみましょう: http://jsfiddle.net/2z355/4/

として印刷され123,456、括弧もありません。

el.innerHTML = JSON.parse('[123]');  // The one item: 123
el.innerHTML = JSON.parse('[123]')[0]; // First item of array: 123
el.innerHTML = JSON.parse('[123,456]') // Both values: 123,456;
el.innerHTML = JSON.parse('[123,456]')[0] // First item: 123;

また、

el.innerHTML = typeof JSON.parse('123'); // number
el.innerHTML = typeof JSON.parse('[123]'); // object *)

そこに「配列」があると思っていましたが、オブジェクトであることがわかりました。最近、PHP を使いすぎているのかもしれません。とはいえ、数字ではありません。:) 幸いなことに、次の行機能します (icktoofay のおかげです)。

el.innerHTML = JSON.parse('[123]') instanceof Array; // true
于 2013-07-19T05:54:27.587 に答える
6

これは単一の整数の配列です。JavaScript の癖により、配列の文字列表現がコンマで結合された要素の文字列表現になり[].

あなたはそれが配列であることを知っています

  1. result instanceof Array
  2. JSON.stringify(result) === '[123]'
于 2013-07-19T05:53:41.317 に答える