SYNCERのロゴ
アイキャッチ画像

JSON.stringify() - オブジェクトを文字列に変換する

JSON.stringify()は、JSONオブジェクトを文字列に変換するメソッドです。文字列に変換する際、オブジェクトはシリアライズされます。例えば、値がnew Date()の場合、toJSON()が実行されて、JSONシリアライズした値に変換されて文字列化します。

概要

名前
stringify
所属
JSON
仕様書
https://tc39.github.io/ecma262/#sec-json.stringify

説明

JSON.stringify ( value [ , replacer [ , space ] ] )

第1引数(value)に文字列化するオブジェクトを指定します。Object型だけでなく、{{String型}}、{{Boolean型}}、{{Number型}}、nullでもかまいません。

第2引数(replacer)には任意で関数、または配列を指定します。フィルタリングなどの目的に利用しましょう。不要な場合は省略するか、nullを指定します。

関数
replacerが関数の場合、Array.prototype.map()のような働きをします。オブジェクトの各プロパティのキーと値を引数に取り、返した値が新しく設定されます。また、値がundefinedだったり返さない場合、そのプロパティは削除されます。parse()の第2引数と働きは同じです。説明をご参考下さい。
配列
replacerが配列の場合、キー名がその配列に含まれないプロパティが削除されます。例えば、["a","b"]を指定した場合、aとbというキー名を持つプロパティ以外は削除されます。

第3引数(space)には任意でインデント用の文字列を指定できます。タブや半角スペースを指定しましょう。すると文字列化する時に適切に改行やインデントが入ります。文字列化したJSONを目視で確認したい場合に便利です。

デモ

JSON.stringify()のデモです。しっかり変換されているかは、コンソールで確認して下さい。

<!-- このコードは編集できます。 -->

<!DOCTYPE html>
<html>
<head>
	<style>
body {
	white-space: pre-wrap ;
}
	</style>
</head>
<body>
<script>
/** try it! **/
var object = {
	a: true,
	b: 99,
	c: "hoge",
} ;

// 第1引数
var a = JSON.stringify( object ) ;

// 第2引数 (関数)
var b = JSON.stringify( object, function ( key, value ) {
	if ( !key || typeof value === "boolean" ) {
		return value ;
	} else {
		return undefined ;
	}
} ) ;

// 第2引数 (配列)
var c = JSON.stringify( object, [ "a", "c" ] ) ;

// 第3引数
var d = JSON.stringify( object, null, " " ) ;
/** try it! **/

var results = { a:a, b:b, c:c, d:d, } ;

for( var name in results ) {
	console.log( name, results[name] ) ;
	document.body.appendChild( new Text( name + " = " + results[name] + "\n\n" ) ) ;
}
</script>
</body>
</html>

サポート状況

ChromeFirefoxSafariEdgeIEOperaiOS SafariAndroid
8+
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年9月26日 (火)
コンテンツを公開しました。