Angular TIPS

Angular TIPS

JavaScriptオブジェクトをJSON形式に変換するには?(json)

2017年3月22日 (2017/04/14 更新)

JavaScriptのJSON.stringifyメソッドと同じように、AngularでJavaScriptのオブジェクトをJSON形式に変換できるjsonパイプの基本的な使い方を説明する。

  • このエントリーをはてなブックマークに追加

【対応バージョン】 Angular 2/4対応。v2時点で執筆し、v4時点で内容を確認・検証しました。

 jsonパイプを利用することで、JavaScriptのオブジェクトをJSON(JavaScript Object Notation)形式に変換できます。主にデバッグ用途で、オブジェクト(変数)の中身をブラウザー上で確認したいような状況で利用します。JavaScript標準のJSON.stringifyメソッドに相当するパイプです。

 例えば以下は、objプロパティの内容を、jsonフィルターで変換した例です。

TypeScript
import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `
    <pre>{{ obj | json }}</pre>
  `,
})
export class AppComponent {
  obj: any = {
      isbn: undefined,
      title: 'Angularライブラリ 活用レシピ',
      authors: ['山田祥寛', '掛谷奈美'],
      price: 1200,
      toString: function() { /* 任意の処理 */ }
  };
}
プロパティ値をJSON形式で出力するためのコード(app.component.ts)
オブジェクトを読みやすい形式で表示
オブジェクトを読みやすい形式で表示

 jsonパイプは、インデント付きのJSON文字列を出力するだけで、改行のための<br>要素などを自動で付与してくれるわけではありません。ブラウザーへの表示に際しては、<pre>要素などで結果をくくるようにしてください。

 なお、オブジェクト(プロパティ)の値がundefined、またはfunction型(=メソッド)の場合は、変換の対象外です。サンプルであれば、isbnプロパティ、toStringメソッドは変換結果に含まれていません。

処理対象:PIPE(パイプ) カテゴリ:基本
API:JsonPipe(json) カテゴリ:@angular > common > PIPE(パイプ)

※以下では、本稿の前後を合わせて5回分(第7回~第11回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

7. ビューにHTML文書をバインドするには?(Property Binding)

プロパティバインディングでHTMLタグを含む文字列にバインドした場合、デフォルトでサニタイズされる挙動を確認。逆に意図的にサニタイズさせない方法を説明する。

8. 要素の属性に値をバインドするには?(Attribute Binding)

HTML要素の属性に対応するプロパティではなく、属性そのものにバインディングする方法を説明する。

9. 【現在、表示中】≫ JavaScriptオブジェクトをJSON形式に変換するには?(json)

JavaScriptのJSON.stringifyメソッドと同じように、AngularでJavaScriptのオブジェクトをJSON形式に変換できるjsonパイプの基本的な使い方を説明する。

10. 文字列を大文字/小文字に変換するには?(lowercase/uppercase)

JavaScriptのStringクラスにおけるtoLowerCase/toUpperCaseメソッドと同じように、Angularで文字列を小文字/大文字に変換できるlowercase/uppercaseパイプの基本的な使い方を説明する。

11. 数値データに桁区切り文字を付与するには?(number)

Angularで数値を桁区切り文字列に整形するための、numberパイプの基本的な使い方を説明する。整数と小数点以下の桁数を指定して整形することも可能。

イベント情報(メディアスポンサーです)

Twitterでつぶやこう!


Build Insider賛同企業・団体

Build Insiderは、以下の企業・団体の支援を受けて活動しています(募集概要)。

ゴールドレベル

  • グレープシティ株式会社
  • 日本マイクロソフト株式会社