Vorwort
Bei der Verwendung von node-red für verschiedene Geschäftsszenarien stoßen wir häufig auf eine Vielzahl von Datenformaten, am häufigsten ist das json-Datenformat, gefolgt von XML, YAML und CSV. Dies sind die Fähigkeiten, die wir brauchen, um ein wenig zu analysieren und zu konvertieren, um die Datenformate, heute in diesem Artikel werde ich Ihnen zeigen, wie man mit json und xml Datenformate arbeiten.
Konvertierung des json-Formates in node-red
Die Verarbeitung des json-Datenformats in node-red ist am einfachsten. Der Hauptgrund dafür ist, dass node-red selbst in JavaScript geschrieben wurde. Das am häufigsten verwendete Format in JavaScript ist das json-Datenformat. Die Deklaration eines json-Datenformats ist einfach.
# json 数据的声明
const person = {name: 'fizzz', age:12}
# 打印数据
console.log(person.name)
# 重新赋值
person.name = 'tom'
Das json-Datenformat ist so einfach.
Hier ist ein Stream von JSON-Konvertierungen, in dem Sie die Manipulation von JSON-Daten erleben können.
[{"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":[]}]
Die Effektkarte ist wie folgt:
Die Verarbeitung von json-Daten erfolgt hauptsächlich über den json-Kernknoten, der Zeichenfolgen mit json-Daten umsetzen kann. sehr bequem. Wenn die Umwandlung fehlschlägt, gibt es einen Fehler.
Die Details des JSON-Knoten sind wie folgt:
Eingabeparameter:payload: object| String
JavaScript-Objekt oder JSON-String.schema: object
Das optionale JSON-Schema - Objekt wird verwendet, um die Nutzlast zu validieren. Diese Eigenschaft wird gelöscht, bevor die MSG an den nächsten Knoten gesendet wird.
Exportparameter:payload: object| Zeichenkette
Wenn es sich bei der Eingabe um eine JSON-Zeichenfolge handelt, wird es versuchen, sie als JavaScript-Objekt zu analysieren.
Wenn die Eingabe ein JavaScript-Objekt ist, erzeugt es eine JSON-Zeichenfolge. Sie können auch diese JSON-Zeichenfolge gestalten.schema: Error Array
Wenn die Authentifizierung des SONJ-Musters fehlschlägt, hat der catch-Knoten die SchemaError-Eigenschaft, die ein Array von Fehlern enthält.
Verarbeitung von XML-Daten in node-red
Bei der Verarbeitung von XML-Daten in ndoe-red ist das primäre Szenario die Konvertierung von json-Daten in XML-Daten oder die Konvertierung von XML-Daten in json-Datenformat. Dabei handelt es sich hauptsächlich um den XML-Kernknoten, dessen zugrunde liegende Basis die Bibliothek xml2json ist.
Die xml-Eingabe benötigt zwei Parameter.
payload:| Zeichenkette
wird als JavaScript-Objekt oder XML-Zeichenfolge gesetzt.
options: Object
Sie können die Optionen an eine interne XML-Transformationsbibliothek übergeben. Lesen Sie die xml2js-Dokumentation für weitere Informationen.
Das Ergebnis des Exports istpayload: object| String
Wenn die Eingabe eine String ist, versucht es, sie in XML zu analysieren und ein JavaScript-Objekt zu erstellen.
Wenn die Eingabe ein JavaScript-Objekt ist, wird es versuchen, eine XML-Zeichenfolge zu erstellen.
Bei der Umwandlung zwischen XML und einem Objekt wird die XML-Eigenschaft standardmäßig zu einer Eigenschaft namens $fügt. Fügen Sie Textinhalte zu einer Eigenschaft namens _ hinzu. Diese Eigenschaften können in den Knoten-Einstellungen geändert werden.
Hier ist ein Beispiel, in dem Sie die Konvertierung von XML-Daten in das json-Datenformat von node-red spüren können.
[{"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"]]}]
durch node-red erleben können.
Antwort veröffentlichen