UE4 MarketplaceにJsonパーサープラグインをリリースしました


EasyJsonParser

自作のUE4プラグイン3作目としてEasyJsonParserをリリースしました。

EasyJsonParser:ayumax:Code Plugins - UE4 マーケットプレイス

これは2作目のEasyXMLParserとコンセプトは同じで、ブループリント上から簡単なアクセス方法でJson内の値を取得できます。

/images/2019/06/15/231224/20190616151043.png

こちらもGitHubのほうにサンプルプロジェクトをアップロードしてますので、ご興味ある方は参考にしてください。

使い方

Json文字列 or Jsonファイルロードした後、アクセス文字列を指定して値の取得を行います。

/images/2019/06/15/231224/20190615222610.png

アクセス文字列の指定

基本的には取得したい値までのパスをドットでつなげて指定します。

シンプルなケース

以下のシンプルなJsonから"prop"の値をとる場合のアクセス文字列はpropになります。

{
  "prop":"abc"
}

オブジェクトの階層になっている場合

以下のように階層になっている場合は、ドットでつなげてアクセス文字列を作ります。

以下のケースではobjというオブジェクトの中のpropプロパティを取りたいため、アクセス文字列はobj.propになります。

{
  "obj":
  {
    "prop":"abc"
  }
}

配列が含まれる場合

以下のように配列になっている場合は、何番目のものを取りたいかを指定します。

例えば2個目のpropを取りたい場合は、obj[1].propとなります。

1個目のpropを取りたい場合は、obj[0].propとなります。

{
  "obj":[
  {
    "prop":"abc"
  },
  {
    "prop":"def"
  }
  ]
}

型を指定しての値の取得

Jsonから値を取得するために、次の4つの関数が用意されます。

/images/2019/06/15/231224/20190615225443.png

「AccessString」にはアクセス文字列を入力します。

「DefaultValue」にはデフォルト値を入力します。指定された値がJsonに存在しない場合は、デフォルト値が返されます。

オブジェクトの取得

値ではなくオブジェクトとして取得する “ReadObject"および “ReadObjects"メソッドもあります。

このメソッドで取得できるのはオブジェクトプロパティのみです。

ReadObjectは1つのノードオブジェクトを取得します。

ReadObjectsは複数のオブジェクトの配列を取得します。

以下のように、いったん階層途中のオブジェクトを取得してから、そのオブジェクトのプロパティを取得する使い方もできます。

/images/2019/06/15/231224/20190615230219.png
/images/2019/06/15/231224/20190615230333.png

今できることと今後やりたいこと

今回はJsonから値を取得するという機能のみを、いかにシンプルに実装するかを考えて作成しました。

今はJsonはConfig値を設定ファイルに保存して利用したり、Web APIのデータのやりとりなど様々なところで使われていると思います。

このプラグインを使用すると、そのようなJsonからの値の取り出しをブループリントから楽にできるようになります。

今後の機能UPとしては以下のようなものを候補に考えています。 特に今は値の取得しかできないので、値の設定側もできるようになると幅が広がるのかなあと思っています。

UE4 

See also