본문 바로가기

IT/UiPath

DataTable을 엑셀을 사용하지 않고 JSON 형식으로 사용해서 변환 하는 방법

1. 우선 UiPath Studio에서 하기 이미지 처럼 Imports에서 Newtonsoft.Json을 import 한다. 

UiPath 그림

 

2. 텍스트 파일을 써도 되고 string문자열에 JSON형식을 작성한다. 

  예시]

           [

             {"성":"이", "이름":"길동", "나이":"34"},

             {"성":"김", "이름":"아름", "나이":"27"},

             {"성":"나", "이름":"영철", "나이":"43"}

            ]

 

           [

             {"No.":"1", "Type":"A", "Price":"3400", "weight(kg)":"56"},

             {"No.":"2", "Type":"C", "Price":"8550", "weight(kg)":"72"},

             {"No.":"3", "Type":"B", "Price":"10560", "weight(kg)":"32"},

            ]

      *UiPath에서 Assign에서 문자열로 선언할 경우에는 [{"성":"이"...}]를 => [{""성"":""이""...}]로 쌍따음표를 하나 더 붙여야

       한다.

 

3. Assign형식에서

Datatable_test = JsonConvert.DeserializeObject(of DataTable)(JSON형식으로 된 문자열이나 문자열 변수) 으로 쓰면 Datatable로 변환된다.

*원래 다 풀어쓰면 Newtonsoft.Json.JsonConvert.DeserializeObject(of DataTable)(JSON형식 문자열 아니면 JSON형식 문자열 변수)

 

**이 방식을 쓰는 이유는 엑셀로 Datatable로 쓰면 엑셀 자체가 최소 데이터가 kb가 넘고 엑셀 스코프 써야하고 ReadRange써야하고 은근 짜증난다.. 추가로 읽는 속도도 느리다. 그런데 JSON형식으로 쓰면 느린 엑셀을 굳이 쓸 필요가 없고 용량도 바이트 단위여서 메모리 측면에서 절약 약이 가능하다. 그리고 데이터테이블에 메타데이타에 들어갈 데이터가 적은 경우 유용하게 쓸 수 있다. 

**단 메타데이터에 데이터가 많은 경우에는 JSON으로 보기가 힘들기 때문에 엑셀이나 DB를 사용하기를 권장한다.