2011-01-29 9 views
0

私が自分で作成して作成する前に、誰かがこれを行うライブラリを知っているかどうかは分かりました。文字列関数のより良いjavascriptですか?

私はJavascriptで何かを取る関数、配列、連想配列、数値、または文字列であって、そのようなものに変換する関数を探しています。たとえば:

toString([1,2,3]) === '[1, 2, 3]' 
toString([[1,2], [2,4], [3,6]]) === '[[1,2], [2,4], [3,6]]' 
toString(23) === '23' 
toString('hello world') === 'hello world' 
toString({'one': 1, 'two': 2, 'three': 3}) === "{'one': 1, 'two': 2, 'three': 3}" 
+9

うーん... 'JSON.stringify'べき私は近いと思います –

+2

基本的にJSONを作成したいです:) http://json.org/ –

+1

'hello world'の例が正しいか、引用符を追加するのを忘れましたか?これが当てはまる場合、 'JSON.stringify'があなたが探しているものです。 – 6502

答えて

4

コメントで述べた(と私は誰もが、実際の答えとしてそれを掲示しない驚いている)として、JSON.stringify()は、あなたが探している方法です。最近ではほとんどのブラウザでネイティブにサポートされていますが、json2.jsを使用してサポートしていないブラウザで実装することもできます。

の作業のデモ:http://jsfiddle.net/AndyE/WXfzJ/

唯一の例外は、JSONによる文字列化されることはありません関数オブジェクト、です。あなたはブラウザによって空白とコメントを剥離することができることを認識すべきであるものの、Function.prototype.toStringは、機能の再解析可能な文字列表現を返します。

function moo() { 
    alert('cow says moo!'); 
} 

alert(moo.toString()); 
+0

JSON.stringify( "foo")=== "" foo "" – Raynos

+0

ソースコードを出力するための非標準の '.toString'関数を挙げてください。 – Raynos

+0

@Raynos:ちょうどそうしている途中です:-)ところで、*は仕様の一部ですが、結果として生成されるソースコードは実装依存であると定義されています。これは、ユーザーコードでは、空白とコメントが削除される可能性があることを意味します。 –

関連する問題