커스텀 엔지엠 RPA 매크로 - JSON을 배열로 파싱 해주는 커스텀 모듈 만들기. (JSON Parser)
페이지 정보
본문
안녕하세요. 엔지엠소프트웨어입니다. 웹 API를 사용하거나 외부 API를 통해 데이타를 받으면 대부분 XML 또는 JSON입니다. 요즘은 JSON이 아닌 경우를 본적이 없을정도로 대세가 된듯 합니다. 불과 10년전만해도 XML로 되어 있었는데 말이죠^^; 아무튼, [ 스캔한 이미지에서 텍스트를 추출해서 엑셀로 정리 ]하는 예제를 만들다가 텍스트를 JSON으로 쉽게 변환할 수 있으면 좋겠다 싶어서 이 모듈을 만들게 되었습니다. JSON 모델은 아래와 같습니다.
{
"locale": "ko",
"description": "Macro 「거대한」이라는 의미를 나타내는 접두어로 「아주 작은」이란 뜻의 접두어 마이크로(Micro)와는 비교된다.
예를 들어 Macrophysics(거시물리학)이 그것.
경제학 에서는 Microeconomics, 즉 미시경제학과 반대되는 Macroeconomics, 즉 거시경제학의 용례가 있다.
최근에는 매크로가 「전체」 마이크로가 「개별」이라는 의 미가 되어
'매크로'는 GNP, '마이크로'는 기업의 대명사처럼 쓰이는 경우도 있다. ",
"boundingPoly": {
"vertices": [
{
"x": 6,
"y": 17
},
{
"x": 954,
"y": 17
},
{
"x": 954,
"y": 125
},
{
"x": 6,
"y": 125
}
]
}
}
엔지엠 프레임워크에서 텍스트를 JSON 모델로 쉽게 파싱하도록 처리 해주기 때문에 코딩이 그렇게 어렵지는 않습니다. 전체 코드는 아래와 같습니다.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CustomNgmParserModule
{
[Serializable]
public class JsonParserModel : NGM.Models.Interface.BaseCustomToolModel
{
/// <summary>
/// 도구 상자에 표시될 카테고리 이름을 가져옵니다.
/// </summary>
public override string DisplayCategory => "NGMsoftware";
/// <summary>
/// 도구 상자에 표시될 액션 이름을 가져옵니다.
/// </summary>
public override string DisplayName => "텍스트 Json 변환";
[Category("Data")]
[DisplayName("아이템 키")]
[Browsable(true)]
[DefaultValue(null)]
public string Key { get; set; }
[Category("Data")]
[DisplayName("아이템 값")]
[Browsable(true)]
[DefaultValue(null)]
public string Value { get; set; }
[Category("Data")]
[DisplayName("아이템 키 목록")]
[Browsable(true)]
public List<string> Keys { get; set; } = new List<string>();
[Category("Data")]
[DisplayName("아이템 값 목록")]
[Browsable(true)]
public List<string> Values { get; set; } = new List<string>();
[Category("Action")]
[DisplayName("인덱스")]
[Browsable(true)]
[DefaultValue(0)]
public int Index { get; set; }
[Category("Action")]
[DisplayName("텍스트")]
[Browsable(true)]
[DefaultValue(null)]
public string Text { get; set; }
public override void Execute()
{
if (Keys == null)
Keys = new List<string>();
if (Values == null)
Values = new List<string>();
Keys.Clear();
Values.Clear();
var manager = new NGM.Utility.ParserManager.Manager();
var items = manager.TextToJson(Text);
foreach (var item in items)
{
Keys.Add(item.Key);
Values.Add(item.Value);
}
Key = Keys[Index];
Value = Values[Index];
}
}
}
내용이 좀 많긴한데요. 커스텀 모듈 프로젝트를 컴파일한 후 엔지엠 에디터의 관리자 메뉴에서 도구 모음 설치로 첨부된 dll을 선택해주면 자동 설치 됩니다.
간단하게 JSON 텍스트를 넣고, 실행하면 키와 밸류가 쌍을 이루어 배열에 저장됩니다. 인덱스에 위치한 키와 밸류를 가져올 수 있습니다.
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
추천0 비추천0
- 이전글1. 엔지엠 RPA 매크로에서 함수(Function)를 사용하는 방법. 22.03.25
- 다음글윈도우 창 바둑판 정렬 매크로. (윈도우 창 타일 모양 배열) 22.02.05
댓글목록
등록된 댓글이 없습니다.