Node Red 에서 장치의 json, xml 형식의 데이터를 처리하는 방법

무료무료 기술 자료

이 글은 바로 읽을 수 있으며 기초 학습과 검색 유입에 적합합니다.

Node Red 에서 장치의 json, xml 형식의 데이터를 처리하는 방법

前言

在使用node-red处理各种业务시나리오时,我们时常会遇到各种各样的데이터형식,最常见的是json데이터형식,其次还有xml,yaml,以及csv형식的데이터형식。这些都是需要我们对其데이터형식有一点분석和转化的能力,今天这篇글我就来教大家如何处理json 和 xml데이터형식。

node-red中json형식的转换

在node-red中处理json데이터형식是最简单的。最主要的原因是node-red本身就是使用javascript언어来编写的。而javascript中最常用的就是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":[]}]

效果图如下:
Node Red 에서 장치의 json, xml 형식의 데이터를 처리하는 방법插图
json 데이터的处理主要是借助来json核心节点,它可以将문자串与json데이터互转。 非常方便。如果转换失败就会报错。
json 节点的详细설정如下:

입력매개변수:
payload:object | 문자串
JavaScript对象或JSON문자串。
schema:object
可选的JSON Schema对象用于验证有效负载。在将msg보내기到下一个节点之前,将삭제该属性。

출력매개변수:
payload:object | 문자串
如果입력是JSON문자串,它将尝试将其분석为JavaScript对象。
如果입력是JavaScript对象,它将创建一个JSON문자串。并可以选择对此JSON문자串进行整形。
schema:오답数组
如果JSON모드验证失败,则catch节点将具有包含错误数组的schema오답属性。

node-red中处理 xml형식的데이터

在ndoe-red中处理xml的데이터,主要시나리오是 json데이터转换为xml데이터,或者xml형식的데이터转换为json데이터형식。其中主要借助的是xml核心节点,其底层是使用了xml2json这个库。

xml这个节点的需要的입력有二个매개변수

payload : object | 문자串
设置为JavaScript对象或XML문자串。

options:object
可以将选项传递给内部使用的XML转换库。请参见 xml2js문서 来获取更多信息。

출력结果是
payload : object | 문자串
如果입력是문자串,它将尝试将其분석为XML并创建一个JavaScript对象。
如果입력是JavaScript对象,它将尝试构建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,"once D elay ": 0. 1," x ": 100," y ": 26 0," wir es ":"d 72 b 2 b f d. 77 d 0 68"]]},{"id ":" 1 ad f 40 7 d. 6 c 4 fe "," type ":"de bug "," z ":" 64 13 3 d 39. bb 0 39 4 "," name ":"once ": true," tos id ebar ": true,"con active ": false," t ost atus ": false,"com ple te ": false "," x ": 59 0," y ": 26 0," wir es ":},{" id":" 46 6 38 89 0. 8 ae 75 8 "," type ":" in ject"," z":" 64 13 3 d 39. bb 0 39 4"," name":" Ob ject"," top ic":" Pay load":"{" note":{"$":{" pri or ity":" high "}," to":" N ick ")," fr om":" Da ve"," he ading":" R em inder"," body":" Web site 업데이트]}}," pay load Ty pe":" j son"," re pe at":" cron tab":" once": false," once D elay": 0. 1," x": 90," y": 300," wir es ":" dae 1 d 29 1. de 0 d 2"]]},{" id":" 6 fe f ca 6 7. 36 69 e 4 "," type":" de bug "," z":" 64 13 3 d 39. bb 0 39 4 "," name":"" active ": true," tos id ebar ": true," con sole ": false," t ost atus ": false," com ple te ": false "," x": 430," y": 300," wir es ":]},{" id":" d 72 b 2 b f d. 77 d 0 68 "," type":" template pay z":" 64 13 3 d 39. bb 0 39 4 "," type" name":" load field "," type":" ms g "," syn tax: " text: " format"" pla in "," temp late":" note priority =" high" n to Nick/to n from Dave/from n heading Rem inder/heading n body 웹 사이트/body n/note 업데이트 "," out put":" str"," x": 28 0," y": 26 0," wir es":" 17 46[[ 464 a. 87 aa 4 a "]]}, {" id ":" 17464 a. 87 aa 4 a "," type ":" xml "," z ":" 64133 d 39. bb 0394 "," name ":" ", "property ":" payload "," attr ":" ", "chr ":" ", "x ":" 430, "y ":" 260, "wires ":" 1 adf 407 d. 6 c 4 fe "]]}, {" id ":"dae 1 d 291. de 0 d 2 "," type ":" xml "," z ":" 64133 d 39. "", " 0394 ", "name ":":":":" payload ", "attr ":" ", "chr ":" x "0, "y ":" 300", wires " 6 fca 67. 36 69 e "]]}][[[[[[[[<><><><><><><><><><>[[[[[[

흐름 도식도
Node Red 에서 장치의 json, xml 형식의 데이터를 처리하는 방법插图1

相关标签
실제 프로젝트에 이 자료를 활용하시겠습니까?

도구 센터에서 프레임 분석, CRC 검증, 장비 디버깅을 진행하거나 요청을 제출하여 선정 및 연동 제안을 받아보세요.

엔지니어 회원

이 글을 실행 가능한 디버깅 자료로 활용하세요

가입하면 고급 프레임 분석, 자료 패키지 다운로드, 코드 예제, 엔지니어링 사례, 우선 기술 지원을 이용할 수 있어 실제 프로젝트 납품에 적합합니다.

고급 도구 무제한 이용
자료 패키지와 코드 패키지
완전한 엔지니어링 사례 라이브러리
우선 기술 지원 채널

답글 작성

이메일 주소는 공개되지 않습니다. 必填项已用 * 标注