RPA UiPathでやりたいこと
UipathでJSONを読み込んで、使いやすいようにDictionaryに格納します。
JSONはNameとValueの組み合わせなので、NameをDictionaryのキーにします。
{"Name":"Value"}
インターフェイス(引数)
物理名 | 型 | I/O | 説明 |
---|---|---|---|
jsonFIlePath | String | in | JSONファイルのパス |
res | Boolean | out | JSON⇒Dictionaryに成功したかどうか |
dic | Int32 | out | JSONの中身を格納したDictionary |
変数
物理名 | 型 | スコープ | 説明 |
---|---|---|---|
jsonText | String | Try~Catch | JSONテキストファイルを読み込む領域 |
jsonObj | JObject | 全体 | テキストをオブジェクトに変換した作業領域 |
大まかな処理の流れ
① 使う変数の準備
② JSONファイルの読み込みと、デシリアライズ
③ Dictionaryに格納
変数の代入
res = True dic = New Dictionary(Of String,Object)
ファイル読み込みは例外の発生があり得るので、この処理が成功したか失敗したかを「res」に入れます。
DictionaryはNewして領域を生成しておきます。
JSONファイルの読み込み
ファイルの読み込みはException発生の可能性があるので、Try~Catchでくくります。
「テキストファイルからの読み込み」のプロパティには、ファイル > ファイル名にJSONファイルのパス、出力 > コンテンツにString型の変数を設定します。
読み込んだファイルの中身が、その変数の中に格納されます。
「JSONをデシリアライズ」プロパティは、今度はString型からJObjectに格納します。
Catchの中は、resをFalseに設定して、必要であればエラーログを出力するなどの処理を入れてください。
Dictionaryに格納する
JObjectのPropertiesをループで回すと、1セットずつ取得できるので、NameをキーにしてDictionaryに入れてゆきます。
ループのプロパティはTypeArgumentをJPropertyにしておくと、型変換でUipathさんが迷いません。
その他補足事項
Try~CatchでExceptionが発生しても後続処理に続いてしまう作りですが、変数「jsonObject」が空なので、ループ入らず終了します。
判定しないのが気持ち悪い人は、ifを挟んでください。