概略

GetAryDataとは

GetAryDataは、SimpleJSONライブラリでJSON配列(Array)から指定した要素を取り出すための関数です。 JSON配列には文字列・数値・Object・配列など様々なデータを格納できますが、 GetAryDataを使用するとDataIndexで指定した位置のデータをそのまま取得できます。

Web APIから受信したJSONデータやAWS IoT Coreなどから受信したJSONメッセージには、 複数のデータが配列として格納されていることがあります。 そのようなデータをPLCで扱う場合に使用する関数です。

どのような場面で使用するのか

GetAryDataは次のような用途で使用します。

  • Web APIから取得したJSON配列を解析する
  • AWS IoT Coreから受信したJSONデータをPLCで処理する
  • JSON配列内のObjectを取り出す
  • 配列の中の配列を順番に取得する
  • 設備情報やセンサーデータを配列形式で受信する

シンボル

GetAryData

JSONの配列から要素を取り出す

func_getarydata
入出力
In
BYTE[*]
[ から始まる文字列
入力
DataIndex
UINT
要素番号
出力
out
BYTE[65535]
要素の値

DataIndexについて

JSON配列は0から番号が割り当てられます。

DataIndex取得データ
0最初の要素
12番目の要素
23番目の要素

存在しない番号を指定した場合は空データとなります。

Objectを取得する場合

JSON配列の要素がObjectであっても取得できます。 取得されたデータはJSON文字列となるため、 さらにGet関数などを使用してObject内のデータを取得できます。

配列の中の配列を取得する場合

JSON配列の要素がさらに配列である場合も取得できます。 取得したJSON配列に対して再度GetAryDataを実行することで、 ネストされた配列を順番に取り出すことができます。

使用上の注意

  • 入力データは「[」から始まるJSON配列である必要があります。
  • JSON Objectには使用できません。
  • 存在しないDataIndexを指定すると空データになります。
  • 取得したObjectはGet関数などで解析できます。

Get関数との違い

関数用途
GetJSON Objectからキー名で取得
GetAryDataJSON配列から要素番号で取得

実行例

Inデータ (JSON)


DataIndex=0 を指定した時の出力

out

DataIndex=1 を指定した時の出力

out

よくある質問

配列の中にObjectが入っていても取得できますか?

取得できます。Object全体がJSON形式文字列として返されます。

DataIndexが範囲外の場合は?

空データとなります。

配列の中の配列も取得できますか?

取得できます。取得後に再度GetAryDataを使用します。

関連ページ

この記事へのコメント