페이지 선택
Generic selectors
Exact matches only
Search in title
Search in content
Search in pages

JSON 데이터 표현 방식

데이터 발생→데이터 변형/직렬화→MQTT Payload에 적재하여 발송→변형되 데이터수신→데이터 표현/저장 의 과정으로 데이터가 전송되고 처리될 것이다.

이 과정에서 어플리케이션이 데이터를 변형, 표현/해석, 저장을 하기위해서는 통신하는 양측간에  데이터 형식에 대한 약속이 필요하겠다.

 

데이터 표현방식 중 JSON(JavaScript Object Notation)은 가독성이 높은 장점으로 IOT에서도 가장 널리 사용되고 있으며, 이 페이지에서  간단히 살펴본다.

⊕ 가독성 좋다 → Parsing 알고리즘 구현이 어렵다 & 자원(네트워크, MCU)의 효율적 사용이 어렵다.

 

 

 

1. JSON 데이터 표현의 예

아래는 JSON 방식으로 표현된 데이터이다. JSON은 모르더라도 무슨 내용인지 대강 알 수 있을 만큼 가독성이 좋다.

 

{
“Kichen”: {
“light”: true,
“Temperature”: 25,
“humidity”: 30
},

“Room”: {
“light”: false,
“Temperature”: 35,
“humidity”: 40
}
}

 

MQTT Payload 로 아래와 같이 적재되어 네트워크로 실려서 보내질 것이다.

{“Kichen”:{“light”:true,”Temperature”:25,”humidity”:30},”Room”:{“light”:false,”Temperature”:35,”humidity”:40}} 총 110Byte 소요

 

이상의 JSON 구문에 대해서 좀더 이해가 필요하다면 아래 4번 항목에서 JSON 데이터 타입을 참조하도록 한다.

 

 

 

3. JSON 구문 검증 툴 소개

온라인상에 다양한 JSON 구문에 대한 검증 툴이 있다. 각자 기호에 맞는 툴을 찾아 검사해볼 수 있을 것이며 그 중 하나를 소개한다. → §https://jsonlint.com/

 

 

 

4. JSON 데이터 타입 참조

 

♦ 기본 Data Type

데이터 타입 표현의 예 설명
String “temperature” 문자 및 문자열에 대한 표현
Number 3, 1.4, -1e3 숫자애 댜헌 표현
Boolean true, false Boolean 표현
Null null Null 값에 대한 표현

 

 

♦ Array Data Type → 기본데이터를 집합하여 배열로 표현하는 데이터 타입이다. 다음의 예를 통해 그 형식을 이해하자.

[ “livingroom”, “room1”, “room2” ] 문자열에 대한 배열의 예
[ 1,2,3,4 ] 숫자에 대한 배열의 예
[ “tag”, 1.25, false, null ] 문자열, 숫자, Boolean, null에 대한 배열
[ [ “tag1”, 1.25, false, null], [“tag2”, 1.35, true, null] ] 2차원 배열의 구조

 

 

♦ Object Data Type →  기본데이터를 Name:Value의 쌍으로 표현하는 데이터 타입이다. 다음의 예를 통해서 표현방식을 이해하자.

{ “name”: “momoiot” } 문자열, 문자열의 단일 쌍으로 구성된 오브젝트
{ “Number”:10 } 문자열, 숫자의 단일 쌍으로 구성된 오브젝트
{ “Key”: “Name”, “Value”: 2 } 문자열+문자열, 문자열+숫자의 쌍으로  구성된 오브젝트

 

 

♦ Object+Array의 조합

Object를 포함하고 있는 배열 배열을 포함하고 있는 Object
[ 1,2, { “number”:35 } ]

{

“Sequence”: [1,2,3,4],

“Answer”:false

}

 

 

 

 

Adsense

EMW3070

Viewed Page List