---
title: "MapForceを使用したJSONデータのマッピングと変換"
date: "2017-02-15"
categories: 
  - "data-integration"
  - "json"
  - "tools"
tags: 
  - "data-mapping"
  - "json"
  - "mapforce"
  - "xmlspy"
description: MapForce を使用して、JSON データのマッピングと変換を効果的に行う方法を学びましょう。SQLとの連携や、リアルタイムのデータ処理に必要な自動化プロセスについても解説します。
---
Status: #blog

Tags:  #data-mapping #json #mapforce #xmlspy

Categories: [data-integration](/blog/ja/category/data-integration.md) | [json](/blog/ja/category/json.md) | [etl](/blog/ja/category/etl.md)
# MapForceを使用したJSONデータのマッピングと変換

JSONは、そのシンプルな構造、軽量性、そしてJavaScriptプログラミング言語を基盤としていることから、システム間でのデータ転送によく利用される形式です。[MapForceは、JSONデータのマッピングと変換において、JSONを入力形式と出力形式の両方としてサポートしています](https://www.altova.com/ja/mapforce/json-data-mapping.html) 例えば、MapForceは、あらゆる一般的なデータベースから情報を抽出し、データ転送の準備が整ったJSONファイルを作成することができます。**要件：** JSONデータのマッピングが必要となる典型的な例を以下に示します。ある製造会社は、在庫を最小限に抑えたジャストインタイムの組み立てプロセスを採用することでコストを削減しています。新規顧客からの注文は販売データベースに記録され、毎日終わりに、その日の販売に必要な部品がデータベースへのクエリによって集計されます。必要な部品は、JSON形式で転送される発注書を通じて、サプライヤーから注文されます。

![](/blog/images/shutterstock_152168303.jpg)

<!--more-->

購入注文書を生成するためのMapForceにおけるJSONデータのマッピングと変換を行うには、2つの要素が必要です。それは、データベースに対するSQLクエリと、購入注文書をモデル化したJSONインスタンスドキュメントです。データベースのマッピングについては、以前にも記事を書いており、最も最近の記事は[記事のタイトル]です [Altova製品ライン全体に共通するデータベース機能](https://www.altova.com/blog/database-features-across-the-altova-product-line/), したがって、ここではJSONコンポーネントに焦点を当てて説明します。

以下に、データマッピング出力のモデルとなるJSONインスタンスファイルの一例を示します

![JSONデータのマッピングと変換に関するドキュメント（または、JSONデータのマッピングと変換に関する仕様書）](/blog/images/JSON-instance.png)

JSONインスタンスを最初から作成する必要がある場合は、XMLSpy上で直接JSONを記述できます。この際、構文のハイライト表示、コンテキストに応じた入力支援、括弧や波括弧の対応付けを行う構造的なマークアップ、その他様々なJSON編集機能を利用できます。もしJSONに十分な知識がない場合は、XMLSpyを使用してXMLインスタンスをJSONファイルに変換することも可能です。

JSONのインスタンスファイルをデータマッピングにドラッグすると、MapForceは自動的に、JSON Draft 04スキーマ（[http://tools.ietf.org/html/draft-zyp-json-schema-04](http://tools.ietf.org/html/draft-zyp-json-schema-04)）に基づいて、そのインスタンスからJSONスキーマファイルを生成します。

![MapForceにおけるJSONスキーマの作成](/blog/images/JSON-instance-to-data-mapping.png)

JSONスキーマがマッピングに追加され、そのデータ要素は、入力または出力のいずれかにマッピングすることができます

![JSONデータのマッピングコンポーネント](/blog/images/JSON-component-in-mapping.png)

MapForceのデータベースクエリウィンドウは、SQLクエリを迅速にテストしたり、調整したりするための便利な場所を提供します

![MapForceのデータベースクエリウィンドウ](/blog/images/mapforce-db-query.png)

SQLクエリをマッピングに組み込むことで、JSONファイルに必要なソースデータを提供することができます

![MapForceのデータマッピングにデータベースクエリを組み込む](/blog/images/insert-db-query.png)

次に、SQLクエリの結果をJSONコンポーネントのデータ要素に接続します

![データベースの一部をJSON形式のデータにマッピングおよび変換する](/blog/images/partial-mapping-1.png)

注意点として、SELECT文自体が、上記の行配列の下にあるオブジェクト宣言（上記で赤色で強調されている部分）にマッピングされます。これにより、クエリ結果に含まれる各行のデータが、出力ファイル内に新しいJSONオブジェクトとして作成されます。

JSONデータのマッピングと変換を完了するために、最後に残っている項目は日付です。出力ファイルには注文日を記載する必要があり、また、SQLクエリを修正して、常に現在の日付のデータのみを選択するようにする必要があります。MapForceには、これらの両方のニーズに対応できる「now」という日付と時刻の関数が用意されています。

以下に、完成したJSONデータのマッピングを示します

![データベースとJSONデータ間のマッピングが完了しました](/blog/images/completed-json-data-mapping.png)

日付と時刻に関する追加の関数を適用し、月から日を抽出してSQLクエリのパラメータとして使用しました。また、`now`関数からタイムゾーン情報を取り除き、JSON出力に使用する日付を取得しました。（ただし、テスト環境で使用している販売データベースには、1年分の注文データしか含まれていないため、年に関するパラメータは提供していません。）

マップフォースのマッピングウィンドウで「出力」ボタンをクリックすると、マッピングが実行され、結果が出力画面に表示されます

![JSONデータのマッピング結果の出力](/blog/images/json-data-mapping-output.png)

現在、JSONデータのマッピングと変換が完了し、毎日終わりに、製造ラインに必要な部品のJSON形式の購買注文を生成できるようになりました。このプロセスを自動化するために、マッピング情報をMapForce Serverの実行ファイルとして保存し、MapForce Serverで処理することができます。処理は、バッチファイル、FlowForce Serverによる制御、またはMapForce Server APIを通じて行うことができます。

あるいは、マッピングをさらに詳しく調べるために、MapForceがXMLファイルから自動的に生成したJSONスキーマをXMLSpyで開き、XMLSpyのスキーマビューで確認することができます

![XMLSpyのスキーマビューにおけるJSONスキーマ](/blog/images/json-schema-view.png)

MapForceは、JSONデータをXML、JSON、データベース、EDI、XBRL、テキストファイル、Excel、またはWebサービスなど、様々な形式に変換するための強力なデータマッピングツールです。ご自身のJSONデータアプリケーションで試してみたい場合は、以下のものをダウンロードしてください [完全に機能する無料トライアル版](https://www.altova.com/ja/download-trial.html) 本日！
