2021/12/27

JSONとは

JSON(JavaScript Object Notation)とは、軽量なテキストベースのデータ形式(書き方)です
JavaScriptやPythonなど様々な言語同士でデータの受け渡しで使われています

概略

SimpleJSONライブラリは、OMRON NX/NJシリーズPLC向けに作成したJSON解析ライブラリです。
MQTT通信やREST API通信で受信したJSONデータをDictionary形式へ変換し、Keyを指定して簡単にValueを取得できます。
AWS IoT Coreや各種クラウドサービスとの連携で利用できます。

PLCでJSONを利用する場面

JSONはMQTT通信やREST API通信で最もよく利用されるデータ形式です。
AWS IoT Core、Azure IoT Hub、Node-RED、Pythonアプリケーションなどとのデータ連携に利用されます。

基本的なJSONの例


Valueで扱えるデータ
文字列(Strings)"(ダブルクオーテーション)で囲まれた文字(UTF-8)
数値(Numbers)整数、負数、少数の値と指数表記 (16進表記や先頭ゼロ埋めは出来ない)
ブール(Boolean)true、false
オブジェクト(object){}で囲まれた文字
配列(Array)[]で囲まれた文字

このSimpleJSONライブラリでの仕様

容量の制限
扱えるJSONのBYTE数65535
Keyの数100
Keyのbyte数50 byte
(オブジェクトのネストをすべて含む ※1)
Valueのbyte数1986 byte

Valueがオブジェクトの場合はネストします
オブジェクト以外はすべて文字列として格納します

Valueの値
文字列"(ダブルクオーテーション)を含んで格納
数値文字列として格納
配列"["から"]"までをすべて文字列として格納

オブジェクトのネスト

オブジェクトの中にオブジェクトがある時はKeyを.(ドット)で繋ぎます

変換例

JSONをDictionaryに変換したときのKeyとValue

JSON

Dictionary
KeyValue
name"taro"
age29
image.visibletrue
image.Title"View from 15th Floor"
image.Thumbnail.Url"http://www.example.com"
image.Thumbnail.Height125
image.Thumbnail.Width100
image.IDs[116,943, 234, 38793]

ライブラリに梱包しているファンクション

名前空間は "SimpleJSON" で作成しています

  • Deserialize : JSONをDictionaryに変換します
  • GetAryData : JSONの配列から要素を取り出します
  • CharSearch : バイト配列の中からCharctorを検索します
  • Get : DictionaryのKeyを指定してValueを取得します

使用例

使い方はSimpleJSONライブラリ使用例で解説しています

よくある質問

配列(Array)に対応していますか?

対応しています。配列全体を文字列として保持します。

オブジェクトのネストに対応していますか?

対応しています。Keyをドット区切りで管理します。

AWS MQTTで利用できますか?

利用できます。MQTTで受信したJSONデータの解析に適しています。

ライブラリの特徴

  • JSONをDictionaryへ変換
  • ネストしたオブジェクト対応
  • Key指定でValue取得
  • Sysmac Studio対応
  • MQTT通信データ解析に利用可能
  • 無償公開

ダウンロード

この記事へのコメント