NodeRedで、デバイスのJSON、XML形式のデータを処理する方法

無料無料技术资料

这篇内容可直接阅读,适合用于基础学习和検索引流。

NodeRedで、デバイスのJSON、XML形式のデータを処理する方法

前の記事

Node-Redを使用してさまざまなビジネスシナリオを処理すると、さまざまなデータ形式に遭遇することがよくあります。最も一般的なのはJSONデータ形式で、XML、Yaml、csv形式のデータ形式が続きます。これらはすべて、データ形式を少し解析して変換する必要があります。今日の記事では、JSONとXMLデータ形式を扱う方法を教えます。

Node-RedでJSON形式を変換する

Node-RedでJSONデータ形式を扱うのが最も簡単です。主な理由は、node-red自体がJava Script言語で書かれていることです。Java Scriptで最も一般的なのはJSONデータ形式です。JSONデータ形式の定義は簡単です。

# JSONデータの宣言
const person = {name 'fizzz' age 12}
#データを印刷
console.log person.name
#再割り当て
person.name = 'tom'

JSONデータ形式の操作は非常に簡単です。

以下は、JSONデータの操作を体験できるJSON変換のストリームです。

[{"id":"634256b7.2d6818","type":"inject","z":"64133d39.bb0394","name":"JSON String","topic":"","payload":"{"a":1}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":80,"wires":[["a2fe0fc8.095e1"]]},{"id":"a2fe0fc8.095e1","type":"json","z":"64133d39.bb0394","name":"","property":"payload","action":"","pretty":false,"x":270,"y":80,"wires":[["9a4ce2b8.47698"]]},{"id":"9a4ce2b8.47698","type":"debug","z":"64133d39.bb0394","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":430,"y":80,"wires":[]},{"id":"80032e2.7c92cd","type":"inject","z":"64133d39.bb0394","name":"Object","topic":"","payload":"{"a":1}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":120,"wires":[["cd40a0f4.4f5ac"]]},{"id":"cd40a0f4.4f5ac","type":"json","z":"64133d39.bb0394","name":"","property":"payload","action":"","pretty":false,"x":270,"y":120,"wires":[["478b4106.4fd7c"]]},{"id":"478b4106.4fd7c","type":"debug","z":"64133d39.bb0394","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":430,"y":120,"wires":[]}]

効果は以下の通り。
NodeRedで、デバイスのJSON、XML形式のデータを処理する方法插图
JSONデータの処理は、主に文字列をJSONデータと相互変換できるJSONコアノードによって行われます。非常に便利。変換が失敗するとエラーになります。
JSONノードの詳細な構成は以下のとおりです。

入力パラメータ:
payload:object:オブジェクト|ストリング·ストリング
Java ScriptオブジェクトまたはJSON文字列。
schema:object
オプションのJSON Schemaオブジェクトはペイロードの検証に使用されます。msgが次のノードに送信される前に、このプロパティーは削除されます。

出力パラメータ:
payload:object:オブジェクト|ストリング·ストリング
入力がJSON文字列の場合、Java Scriptオブジェクトとして解析しようとします。
入力がJava Scriptオブジェクトの場合、JSON文字列が作成されます。オプションでこのJSON文字列を整形できます。
schema:エラーの配列
JSONスキーマ検証に失敗した場合、catchノードはエラー配列を含むschemaErrorプロパティを持ちます。

Node-redでXML形式のデータを処理する

Ndoe-redでXMLデータを処理する場合、主なシナリオはJSONデータからXMLデータへの変換、またはXML形式のデータからJSON形式への変換です。主にXMLコアノードを使用し、その基盤はXML2 JSONライブラリを使用しています。

XMLこのノードに必要な入力は2つのパラメータです。

payload : object:オブジェクト|ストリング·ストリング
JavaScriptオブジェクトまたはXML文字列に設定します。

options:object
内部的に使用されるXML変換ライブラリにオプションを渡すことができます。詳細はXML2jsドキュメントを参照してください。

出力結果は
payload NetWorkerオブジェクト|ストリング·ストリング
入力が文字列の場合、XMLに解析してJava Scriptオブジェクトを作成しようとします。
入力がJava Scriptオブジェクトの場合、XML文字列の構築を試みます。

また、XMLとオブジェクト間の変換を行う場合、デフォルトではXML属性が$という名前の属性に追加されます。_という名前のプロパティにテキストコンテンツを追加します。これらのアトリビュート名はノード設定で変更できます。

以下は、Node-RedがXMLデータとJSONデータ形式を変換する例です。

[{"id":"1b546d47.9474e3","type":"inject","z":"64133d39.bb0394","name":"XML String","topic":"","payload":"{"a":1}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":260,"wires":[["d72b2bfd.77d068"]]},{"id":"1adf407d.6c4fe","type":"debug","z":"64133d39.bb0394","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":590,"y":260,"wires":[]},{"id":"46638890.8ae758","type":"inject","z":"64133d39.bb0394","name":"Object","topic":"","payload":"{"note":{"$":{"priority":"high"},"to":["Nick"],"from":["Dave"],"heading":["Reminder"],"body":["Update the website"]}}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":300,"wires":[["dae1d291.de0d2"]]},{"id":"6fefca67.3669e4","type":"debug","z":"64133d39.bb0394","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":430,"y":300,"wires":[]},{"id":"d72b2bfd.77d068","type":"template","z":"64133d39.bb0394","name":"","field":"payload","fieldType":"msg","format":"text","syntax":"plain","template":"<note priority="high">n  <to>Nick</to>n  <from>Dave</from>n  <heading>Reminder</heading>n  <body>Update the website</body>n</note>","output":"str","x":280,"y":260,"wires":[["1746464a.87aa4a"]]},{"id":"1746464a.87aa4a","type":"xml","z":"64133d39.bb0394","name":"","property":"payload","attr":"","chr":"","x":430,"y":260,"wires":[["1adf407d.6c4fe"]]},{"id":"dae1d291.de0d2","type":"xml","z":"64133d39.bb0394","name":"","property":"payload","attr":"","chr":"","x":250,"y":300,"wires":[["6fefca67.3669e4"]]}]

フロー図の概要
NodeRedで、デバイスのJSON、XML形式のデータを処理する方法插图1

関連タグ
この資料を実際のプロジェクトに活用しませんか?

ツールセンターで電文解析、CRCチェック、デバイスデバッグを行うか、要件を送信して選定と接続のアドバイスを受けましょう。

エンジニア会員

この記事を実行可能なデバッグ資料に

登録すると、高度な電文解析、資料パックのダウンロード、コード例、エンジニアリングケース、優先技術サポートが利用可能に。実際のプロジェクト納品に最適です。

高度なツール無制限
資料パックとコードパック
完全なエンジニアリングケースライブラリ
優先技術サポート窓口

发表回复

あなたのメールアドレスアドレス不会被公开。 必須項目已用 * 标注