ForHosting KIT · データ変換・整形

そのXML、手作業でJSONにしていませんか

タグが持つ情報を失わずに、XMLを構造化データへ変換します。属性ははっきりした印付きで残り、繰り返すタグは一覧になります。例では、2冊の本がある目録が、Rayuela(1963)とPedro Paramo(1955)の一覧になります。ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日

ブラウザの操作だけで完結します。

手早く作った変換がデータを失う理由

5分で作ったXMLの変換では、各要素の中の文字はうまく扱えても、属性をすべて黙って捨ててしまうことがよくあります。多くのXMLの読み取りでは、属性をデータではなく注釈のように扱うからです。実際の文書では、これが大きな損失になります。SOAPのメッセージ、RSSの配信、SVGの図、何年も前のシステムから引き継いだ設定ファイルでは、ID、種類、通貨コード、版番号といった一番大事な値が、タグそのものに書かれていることが多いのです。この変換ツールは属性を残し、同じ名前の隣の要素とぶつからないよう、それぞれに決まった印を付けます。

XMLが今も使われている場所と、変換の結果

いまウェブのアプリ同士でやり取りされる形式は、何年も前にその座を勝ち取りましたが、XMLがなくなったわけではありません。SOAPのサービス、RSSやAtomの配信、Officeの文書の中身などで今も動いており、遅かれ早かれ、そのデータを新しいシステムや表計算ソフトへ移す必要が出てきます。変換では木の形がそのまま保たれます。入れ子の要素は入れ子のまま、繰り返すタグは互いを上書きせずに一覧になります。例では、2冊の本がある目録が、Rayuela(1963)とPedro Paramo(1955)の一覧として返り、題名と年がそれぞれの名前の下に入ります。

入れ子構造の変換

入れ子になった要素はそのままオブジェクトになり、同じ名前の要素が繰り返される場合は配列にまとめられます。深い階層のXMLも、構造を保ったまま変換されます。

対応できる範囲

ファイルサイズは25MBまでです。整形式(well-formed)のXMLが対象で、タグの閉じ忘れなど構文が崩れているデータはエラーになります。

アップロードしたXMLはどこに送信されますか?

送信されません。 変換はブラウザ内で完結し、内容が外部に渡ることはありません。

崩れたXMLを読み込むとどうなりますか?

タグの閉じ忘れなど構文が正しくないXMLは、エラーとして扱われます。事前に構文の確認をおすすめします。

なぜ無料で使えるのですか?

処理がブラウザ内で完結するため、無料で提供しています。会員登録も不要です。

日本語のサポートはありますか?

申し訳ありませんが、日本語でのサポートは行っておりません。サポートは英語またはスペイン語で、担当者が直接対応します。ツール自体は日本語のデータでも問題なくご利用いただけます。

XMLの属性は変換後も残りますか?

残ります。同じ階層にある同じ名前の要素とぶつからないよう、属性には決まった印が付きます。属性にはID、種類、通貨、版などの大切な値が入っていることが多いためです。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/data/xml-to-json

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/data/xml-to-json \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"xml":"<r><a>1</a></r>"}'
{
  "xml": "<r><a>1</a></r>"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "data.xml_to_json",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

max_mb25
HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

XML形式のデータをJSON形式に変換する機能です。古いシステムや外部サービスから届くXMLを、現在のアプリやAPIが扱いやすいJSONに変えたいときに使います。

属性とテキストの扱い

属性の多いXMLでも、元の情報を失わずに変換できます。XMLの属性は先頭に記号を付けたキーとして、要素のテキスト内容は値としてJSONに反映されます。

手作業との違い

XMLを見ながら手でJSONを書き起こす作業は、要素が多いほど時間がかかり、書き間違いも起こりやすくなります。この機能を使えば、専用のスクリプトを用意しなくても変換できます。

取引先システムから届くXMLをJSON化する

株式会社山田商事では、取引先のシステムから届く受発注データのXMLをこの機能でJSONに変換し、社内システムに取り込んでいます。

外部データをアプリに取り込む

田中大輔さんは、外部サービスからXML形式で提供されるデータをJSONに変換し、開発中のアプリにそのまま読み込ませています。

古いシステムのデータを移行する

合同会社みどりデザインでは、旧システムからエクスポートされたXMLデータをJSONに変換し、新しいシステムへの移行作業に使っています。

ファイルサイズに制限はありますか

1ファイルあたり25MBまでです。

属性はどのようにJSONへ変換されますか

属性は先頭に記号を付けたキーとして扱われ、要素のテキスト内容とは区別して出力されます。

API経由で自動化する場合の料金はいくらですか

1リクエスト$0.002(米ドル)です。サブスクリプションはなく、使った分だけの支払いです。

KITの完全なドキュメントを見る →