0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UiPath (produced with UiPath Friends)Advent Calendar 2024

Day 9

【UiPath】JSON配列をデータテーブルに変換してCSVで出力する

Posted at

UiPathにて、要素数・深さが一定のJSON文字列を取込み、各種Json変数を通してデータテーブルに変換し、CSVとして出力するワークフローを作成する。

事前準備

「JSON 配列を逆シリアル化」アクティビティやJArray変数などを使うため、UiPath.WebAPI.Activitiesパッケージが必要になる。標準ではインストールされていないので、「パッケージを管理」から探してインストールしよう。

image.png

また、今回は以下のJSON配列のテキストファイルをインプットとして使用した。
image.png

実装

こちらが今回のワークフロー全体。

image.png

以下でポイントについて解説していく。

① 「JSON 配列を逆シリアル化」

UiPath.WebAPI.Activitiesに含まれるアクティビティ。
設定はシンプルで、「入力」にJSONフォーマットへ沿った文字列(String型変数)を渡すと、JArray型変数に変換してくれる。

② 「繰り返し (コレクションの各要素)」:currentJProperty

次のコレクション内の各要素:jsonAry(0).Children(Of JProperty)()

ここではJSONの要素に対応してデータテーブルの列名を定義するため、「JSON 配列を逆シリアル化」が出力したJArray型変数のうち1行目のみを取得し、プロパティの名前を読み取って空のデータテーブルに列追加している。

③ 「繰り返し (コレクションの各要素)」currentJToken

ここからはデータテーブルに行を追加していく。繰り返しが2重になっており、外側のループはJSON配列、内側のループはJSONの各要素に対応している。
はじめにDataTableのNewRowメソッドを使って空の行変数を作成。次に列名を定義した時と同様にJSONのプロパティで繰り返しをかけ、プロパティ名と同じ列名(rowTemp(currentJProperty.Name))にプロパティの値(currentJProperty.Value)を追加していく。最後に、行変数をデータテーブルに追加。これをJSON配列ごとに繰り返す。

出力結果

こちらが出力したCSVの内容。無事にJSONをCSVとして変換できている。

image.png

参考

動作環境

UiPath.WebAPI.Activity v1.21.1
UiPath.System.Activity v24.10.7

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?